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\n", 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\n", 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\n", sum); 21 printf("cnt = %d\n", cnt); 22 printf("avg = %f\n", 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\n", sum1); 21 printf("偶数和 = %d\n", 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!\n"); 21 else 22 printf("No!\n"); 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之和:\nsum = %d\n", sum); 27 28 sum = 0; //1到100奇数之和 29 for (i=1; i<=100; i+=2) 30 sum = sum +i; 31 printf("1到100之间奇数之和:\nsum = %d\n", 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之间偶数之和:\nsum = %d\n", 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\n", cnt); 46 47 //avg = temp/(float)(cnt); //1到100奇数的平均值 48 avg = 1.0*temp / cnt; //1.0默认是double类型 49 printf("1到100之间奇数的平均数为:%f\n", 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\n", aa); 55 56 float x = 0; //有一个浮点型变量x, 如何判断x的值是否是0 57 if (fabs(x-0.0000001) <= 0.0000001) 58 printf("x是0\n"); 59 else 60 printf("x不是0\n"); 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\n", 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 不成立
时间: 2024-10-12 08:14:33