for, while的用法

for循环求1+2+3+4+....+100

# include <stdio.h>

int main(void)
{
    int i;    //循环中更新的变量i不能定义成浮点型
    int sum = 0;

    for (i=1; i<=100; ++i)
        sum = sum + i;

    printf("sum = %d
", sum);

    return 0;
}

求1-100之间奇数的个数:

# include <stdio.h>

int main(void)
{
    int i;    //循环中更新的变量i不能定义成浮点型
    int sum = 0;

    for (i=1; i<=100; ++i)
        sum = sum + i;

    printf("sum = %d
", sum);

    return 0;
}

求1-100之间奇数的平均值:

 1 # include <stdio.h>
 2 
 3 int main(void)
 4 {
 5     int i;
 6     int sum = 0;
 7     int cnt = 0;
 8     float avg; //average 的缩写
 9     
10     for (i=1; i<101; ++i)
11     {
12         if (i%2 == 1)
13         {
14             sum += i;
15             ++cnt;
16         }
17     }
18     avg = 1.0*sum / cnt;  //1.0默认是double类型
19 
20     printf("sum = %d
", sum);
21     printf("cnt = %d
", cnt);
22     printf("avg = %f
", avg);
23     
24     return 0;
25 }

求1-100之间奇数和,偶数和:

 1 # include <stdio.h>
 2 
 3 int main(void)
 4 {
 5     int i;
 6     int sum1 = 0;  //奇数和
 7     int sum2 = 0;  //偶数和
 8     
 9     for (i=1; i<101; ++i)
10     {
11         if (i%2 == 1)
12         {
13             sum1 += i;
14         }
15         else
16         {
17             sum2 += i;
18         }
19     }
20     printf("奇数和 = %d
", sum1);
21     printf("偶数和 = %d
", sum2);
22     
23     return 0;
24 }

while语句 求回文数:

 1 # include <stdio.h>
 2 
 3 int main(void)
 4 {
 5     int val; //存放待判断的数字
 6     int m;
 7     int sum = 0;
 8 
 9     printf("请输入您需要判断的数字:  ");
10     scanf("%d", &val);
11     
12     m = val;
13     while (m)
14     {
15         sum = sum * 10 + m%10;
16         m /= 10;
17     }
18 
19     if (sum == val)
20         printf("Yes!
");
21     else
22         printf("No!
");
23 
24     return 0;
25 }

一个比较综合的例子:

 1 /*
 2 时间:2015年2月7日15:58:20
 3 描述:1. 1到100之间奇数偶数求和问题
 4       2. for语句while语句相互转化
 5       3. 强制类型转换
 6 */
 7 
 8 # include <stdio.h>
 9 # include <math.h>
10 
11 int main(void)
12 {
13     int i,temp;
14     int sum = 0;
15     float avg = 0.0;        //average的缩写
16 /*    
17     for (i=1; i<=100; i++)    //1到100之和
18         sum = sum +i;
19 */
20     i = 0;                    //用while实现,注意i的初始化
21     while (i <= 100)
22     {
23         sum += i;            //两个语句不能互换
24         i++;
25     }
26     printf("1到100之和:
sum = %d
", sum);
27     
28     sum = 0;                //1到100奇数之和
29     for (i=1; i<=100; i+=2)
30         sum = sum +i;
31     printf("1到100之间奇数之和:
sum = %d
", sum);
32     temp = sum;
33     
34     sum = 0;                //1到100偶数之和
35     for (i=2; i<=100; i+=2)
36         sum = sum +i;
37     printf("1到100之间偶数之和:
sum = %d
", sum);
38     
39     int cnt = 0;                //1到100奇数的个数,个数一般用cnt表示,count
40     for (i=1; i<=100; i++)
41     {
42         if (i%2 == 1)
43             cnt += 1;
44     }
45     printf("1到100之间奇数的个数是%d
", cnt);
46     
47     //avg = temp/(float)(cnt);            //1到100奇数的平均值
48     avg = 1.0*temp / cnt;                //1.0默认是double类型
49     printf("1到100之间奇数的平均数为:%f
", avg);
50     
51     float aa = 0;            //1 + 1/2 + 1/3 + ... + 1/100之和
52     for (i=1; i<=100; i++)
53         aa += 1/((float) i);//或   aa += 1.0/i;
54     printf("1 + 1/2 + 1/3 + ... + 1/100 = %f
", aa);
55     
56     float x = 0;            //有一个浮点型变量x, 如何判断x的值是否是0
57     if (fabs(x-0.0000001) <= 0.0000001)
58         printf("x是0
");
59     else
60         printf("x不是0
");
61     
62     return 0;
63 }
64 
65 /*
66 在VC++6.0输出结果是:
67 ----------------------------
68 1到100之和:
69 sum = 5050
70 1到100之间奇数之和:
71 sum = 2500
72 1到100之间偶数之和:
73 sum = 2550
74 1到100之间奇数的个数是50
75 1到100之间奇数的平均数为:50.000000
76 1 + 1/2 + 1/3 + ... + 1/100 = 5.187378
77 x是0
78 ----------------------------
79 注意:
80 1.    float 和double 都不能保证可以精确的存储一个小数
81 所以自增自减变量i, j 不能定义成浮点型
82 2.    注意绝对值函数abs()和fabs()
83 如果整型取绝对值用abs,float用fabs,并且要#include <math.h>
84 3.  VC6.0自动对齐,选中需要对齐的程序,按ALT+F8
85 4.  F2(或者shift + F2)可以跳转到下一处标记
86     CTRL + shift + F2 取消所有标记
87     CTRL + F2可以添加或取消某一个标记
88 5.  for 语句和while 语句的相互转化,但是for的逻辑性更强,推荐多使用for循环
89 
90     for (1; 2; 3)
91         A;
92     等价于
93     1;
94     while(2)
95     {
96         A;
97         3;
98     }
99 */

菲波拉契序列_递归:

 1 /*
 2     菲波拉契序列
 3     1  2  3  5  8  13  21  34
 4 */
 5 
 6 # include <stdio.h>
 7 
 8 int main(void)
 9 {
10     int n;
11     int f1, f2, f3;
12     int i;
13 
14     f1 = 1;
15     f2 = 2;
16 
17     printf("请输入您需要求的想的序列: ");
18     scanf("%d", &n);
19 
20     if (1 == n)
21     {
22         f3 = 1;
23     }
24     else if (2 == n)
25     {
26         f3 = 2;
27     }
28     else
29     {
30         for (i=3; i<=n; ++i)
31         {
32             f3 = f1 + f2;
33             f1 = f2;
34             f2 = f3;
35         }
36     }
37 
38     printf("%d
", f3);
39     
40     return 0;
41 }

试数:设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  不成立

http://www.cnblogs.com/moon1992/
原文地址:https://www.cnblogs.com/moon1992/p/4536555.html