for, while的用法
for循环求1+2+3+4+....+100
# include <stdio.h> int main(void)
{
int i; //循环中更新的变量i不能定义成浮点型
int sum = ; for (i=; i<=; ++i)
sum = sum + i; printf("sum = %d\n", sum); return ;
}
求1-100之间奇数的个数:
# include <stdio.h> int main(void)
{
int i; //循环中更新的变量i不能定义成浮点型
int sum = ; for (i=; i<=; ++i)
sum = sum + i; printf("sum = %d\n", sum); return ;
}
求1-100之间奇数的平均值:
# include <stdio.h> int main(void)
{
int i;
int sum = ;
int cnt = ;
float avg; //average 的缩写 for (i=; i<; ++i)
{
if (i% == )
{
sum += i;
++cnt;
}
}
avg = 1.0*sum / cnt; //1.0默认是double类型 printf("sum = %d\n", sum);
printf("cnt = %d\n", cnt);
printf("avg = %f\n", avg); return ;
}
求1-100之间奇数和,偶数和:
# include <stdio.h> int main(void)
{
int i;
int sum1 = ; //奇数和
int sum2 = ; //偶数和 for (i=; i<; ++i)
{
if (i% == )
{
sum1 += i;
}
else
{
sum2 += i;
}
}
printf("奇数和 = %d\n", sum1);
printf("偶数和 = %d\n", sum2); return ;
}
while语句 求回文数:
# include <stdio.h> int main(void)
{
int val; //存放待判断的数字
int m;
int sum = ; printf("请输入您需要判断的数字: ");
scanf("%d", &val); m = val;
while (m)
{
sum = sum * + m%;
m /= ;
} if (sum == val)
printf("Yes!\n");
else
printf("No!\n"); return ;
}
一个比较综合的例子:
/*
时间:2015年2月7日15:58:20
描述:1. 1到100之间奇数偶数求和问题
2. for语句while语句相互转化
3. 强制类型转换
*/ # include <stdio.h>
# include <math.h> int main(void)
{
int i,temp;
int sum = ;
float avg = 0.0; //average的缩写
/*
for (i=1; i<=100; i++) //1到100之和
sum = sum +i;
*/
i = ; //用while实现,注意i的初始化
while (i <= )
{
sum += i; //两个语句不能互换
i++;
}
printf("1到100之和:\nsum = %d\n", sum); sum = ; //1到100奇数之和
for (i=; i<=; i+=)
sum = sum +i;
printf("1到100之间奇数之和:\nsum = %d\n", sum);
temp = sum; sum = ; //1到100偶数之和
for (i=; i<=; i+=)
sum = sum +i;
printf("1到100之间偶数之和:\nsum = %d\n", sum); int cnt = ; //1到100奇数的个数,个数一般用cnt表示,count
for (i=; i<=; i++)
{
if (i% == )
cnt += ;
}
printf("1到100之间奇数的个数是%d\n", cnt); //avg = temp/(float)(cnt); //1到100奇数的平均值
avg = 1.0*temp / cnt; //1.0默认是double类型
printf("1到100之间奇数的平均数为:%f\n", avg); float aa = ; //1 + 1/2 + 1/3 + ... + 1/100之和
for (i=; i<=; i++)
aa += /((float) i);//或 aa += 1.0/i;
printf("1 + 1/2 + 1/3 + ... + 1/100 = %f\n", aa); float x = ; //有一个浮点型变量x, 如何判断x的值是否是0
if (fabs(x-0.0000001) <= 0.0000001)
printf("x是0\n");
else
printf("x不是0\n"); return ;
} /*
在VC++6.0输出结果是:
----------------------------
1到100之和:
sum = 5050
1到100之间奇数之和:
sum = 2500
1到100之间偶数之和:
sum = 2550
1到100之间奇数的个数是50
1到100之间奇数的平均数为:50.000000
1 + 1/2 + 1/3 + ... + 1/100 = 5.187378
x是0
----------------------------
注意:
1. float 和double 都不能保证可以精确的存储一个小数
所以自增自减变量i, j 不能定义成浮点型
2. 注意绝对值函数abs()和fabs()
如果整型取绝对值用abs,float用fabs,并且要#include <math.h>
3. VC6.0自动对齐,选中需要对齐的程序,按ALT+F8
4. F2(或者shift + F2)可以跳转到下一处标记
CTRL + shift + F2 取消所有标记
CTRL + F2可以添加或取消某一个标记
5. for 语句和while 语句的相互转化,但是for的逻辑性更强,推荐多使用for循环 for (1; 2; 3)
A;
等价于
1;
while(2)
{
A;
3;
}
*/
菲波拉契序列_递归:
/*
菲波拉契序列
1 2 3 5 8 13 21 34
*/ # include <stdio.h> int main(void)
{
int n;
int f1, f2, f3;
int i; f1 = ;
f2 = ; printf("请输入您需要求的想的序列: ");
scanf("%d", &n); if ( == n)
{
f3 = ;
}
else if ( == n)
{
f3 = ;
}
else
{
for (i=; i<=n; ++i)
{
f3 = f1 + f2;
f1 = f2;
f2 = f3;
}
} printf("%d\n", f3); return ;
}
试数:设n = 6
1> i=3 3<=6 成立
f3=1+2=3 f1=f2=2 f2=f3=3 ++i i=4
2> i=4 4<=6 成立
f3=2+3=5 f1=3 f2=5 i=5
3> i=5 5<=6 成立
f3=3+5=8 f1=5 f2=8 i=6
4> i=6 6<=6 成立
f3=5+8=13 f1=8 f2=13 i=7
5> i=7 7<=6 不成立
for, while的用法的更多相关文章
- EditText 基本用法
title: EditText 基本用法 tags: EditText,编辑框,输入框 --- EditText介绍: EditText 在开发中也是经常用到的控件,也是一个比较必要的组件,可以说它是 ...
- jquery插件的用法之cookie 插件
一.使用cookie 插件 插件官方网站下载地址:http://plugins.jquery.com/cookie/ cookie 插件的用法比较简单,直接粘贴下面代码示例: //生成一个cookie ...
- Java中的Socket的用法
Java中的Socket的用法 Java中的Socket分为普通的Socket和NioSocket. 普通Socket的用法 Java中的 ...
- [转载]C#中MessageBox.Show用法以及VB.NET中MsgBox用法
一.C#中MessageBox.Show用法 MessageBox.Show (String) 显示具有指定文本的消息框. 由 .NET Compact Framework 支持. MessageBo ...
- python enumerate 用法
A new built-in function, enumerate() , will make certain loops a bit clearer. enumerate(thing) , whe ...
- [转载]Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结
本文对Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法进行了详细的总结,需要的朋友可以参考下,希望对大家有所帮助. 详细解读Jquery各Ajax函数: ...
- 【JavaScript】innerHTML、innerText和outerHTML的用法区别
用法: <div id="test"> <span style="color:red">test1</span> tes ...
- chattr用法
[root@localhost tmp]# umask 0022 一.chattr用法 1.创建空文件attrtest,然后删除,提示无法删除,因为有隐藏文件 [root@localhost tmp] ...
- 萌新笔记——vim命令“=”、“d”、“y”的用法(结合光标移动命令,一些场合会非常方便)
vim有许多命令,网上搜有一堆贴子.文章列举出各种功能的命令. 对于"="."d"."y",我在无意中发现了它们所具有的相同的一些用法,先举 ...
- [转]thinkphp 模板显示display和assign的用法
thinkphp 模板显示display和assign的用法 $this->assign('name',$value); //在 Action 类里面使用 assign 方法对模板变量赋值,无论 ...
随机推荐
- neutron源码分析(一)OpenStack环境搭建
一.OpenStack安装 安装一个初始化的Mitaka版本的OpenStack环境用于分析,neutron源码 序号 角色 IP地址 版本 1 controller 172.16.15.161 mi ...
- cacti安装和使用
关闭selinux 1.搭建lamp环境 配置apache [root@cacti-server ~]# yum -y install httpd [root@cacti-server ~]# sys ...
- LeetCode OJ:Reorder List(重序链表)
Given a singly linked list L: L0→L1→…→Ln-1→Ln,reorder it to: L0→Ln→L1→Ln-1→L2→Ln-2→… You must do thi ...
- SQL事务的四种隔离级别和MySQL多版本并发控制
SQL标准定义了4类隔离级别,包括了一些具体规则,用来限定事务内外的那些改变时可见的,那些是不可见的.低级别的隔离级一般支持更高的并发处理,并拥有更低的系统开销. ReadUncommitted( ...
- HM visual studio编译报错
今天,编译HM的代码,发现编译报如下错误. error MSB6003: The specified task executable "cl.exe" could not be r ...
- 怎么样在python 3.6里安装tensorflow?
首先要下载python3.6: https://www.python.org/downloads/release/python-361/ 接着下载: numpy-1.13.0-cp36-none-wi ...
- 使用json path设置关联
与正则表达式相比,这种方法会更简单一些: json path是在返回的是K-V的格式中根据key进行的关联,如果压的接口返回的是json的话,使用json path比较方便,如果不是json的话,就使 ...
- dhcp snooping、ARP防护、
应用场景 无线客户端流动性很大和不确定,比如在外来人员比较多的地方:广场.大厅.会议室和接待室等等.使用该方案可以有效地避免因为无线端出现私设IP地址导致地址冲突或者客户端中ARP病毒发起ARP攻击的 ...
- 显卡、显卡驱动、显存、GPU、CUDA、cuDNN
显卡 Video card,Graphics card,又叫显示接口卡,是一个硬件概念(相似的还有网卡),执行计算机到显示设备的数模信号转换任务,安装在计算机的主板上,将计算机的数字信号转换成模拟 ...
- U盘传送容量与格式问题
问题 今天想将7.6G的文件拷到U盘里,提示u盘内存不足,其实内存为14+G. 解答 U盘格式对于U盘的传送大小有限制 下面为U盘三种不同格式的应用及优缺点 FAT32格式:为系统默认格式,具有极佳的 ...