目录
5.4 求1到100之间奇数之和,在求1到100之间偶数之和
1. 循环的定义和分类
简单点说,循环的定义就是某些代码会被重复执行。这就是循环,有些代码会被执行很多次,不停循环。
循环分为 for while do.....while
其中for的使用最多,而且逻辑上最清晰的是for,最难的也是for。
2. for循环为什么使用for循环
先举一个例子
#include<stdio.h>
int main(void)
{
int i;
int sum = 0;
for (i = 1; i <= 100; ++i)
sum = sum + i;
printf("sum = %d\n", sum);
return 0;
}
//输出结果是5050
那这个循环是如何实现的呢,我们先把i = 1设为第一步 i <=100 设为第二步 ++i设为第三步
sum = sum + i 设为第四步 printf("sum = %d\n ", sum) 设为第五步
其中for控制一个语句,printf不属于for语句。
先执行1,然后在执行2,2如果成立,将进行循环,进行4,最后进行3,然后进行2,
如果成立,在43。直到2不成立。最后5输出。
3. for循环的最简单的用法
求一道十之间所有奇数的和
#include<stdio.h>
int main(void)
{
int i;
int sum = 0;
for (i = 1; i < 10; i += 2) //i+=2; 等价于i= i+2
{
printf("wryyyyyy\n");
sum = sum + i;
}
printf("i = %d sum =%d\n", i ,sum);
return 0;
}
/*wryyyyyy
wryyyyyy
wryyyyyy
wryyyyyy
wryyyyyy
i= 11 sum = 25 */
这里我们需要知道的是,这里for循环执行了几次。
i ——>1 3 5 7 9 当i=11时不循环,那我们如和验证呢,printf("wryyyyyy\n")循环了几行,就循环了几次。
i直到11时停止循环,所以输出i的值为11。
sum = 0+1
sum = 1+3
sum = 4+5
sum = 9+7
sum = 16 +9
最终 sum = 1+3+5+7+9=25,为十以内奇数的和。
4. for和if的嵌套使用
#include<stdio.h>
int main(void)
{
int i;
int sum = 0;
for (i = 3; i <= 10; ++i)
{
if (i % 3 == 0)//如果i能被2整除
sum = sum + i;
printf("sum = %d\n", sum);
}
return 0;
}
我们先看看这个流程 i=1 为第1步,i<=10为第2步,++i为第三步,i%3为第四步,sum =sum +i为第五步,printf为第六步。
首先,限制性1.然后执行2,2成立,在执行4,如果4不成立执行6,4成立执行5,5执行完执行6,然后是3,在判断2,2不成立结束程序。
输出结果 sum = 3
sum = 3
sum = 3
sum = 9
sum = 9
sum = 9
sum = 18
sum = 18
i>3 4 5 6 7 8 9 10 11
3 3 3 9 9 9 18 18
5. for和if嵌套使用的例子
5.1 求1到100之间奇数的和
#include<stdio.h>
int main(void)
{
int i;
int sum = 0;
for (i = 0; i < 101; ++i)
{
if (i % 2 == 1)
sum += i; //sum = sum + i
}
printf("sum = %d\n", sum);
return 0;
}//i = 2500
5.2 求1到100之间奇数的个数
#include<stdio.h>
int main(void)
{
int i;
int cut = 0; //一般cut表示个数
for (i = 0; i < 101; ++i)
{
if (i % 2 == 1)
++cut ;
}
printf("cut = %d\n", cut);
return 0;
}//cut= 50
5.3 求1到100之间奇数的平均值
#include<stdio.h>
int main(void)
{
int i;
int cut = 0; //一般cut表示个数
int sum = 0;
float avg; //average的缩写
for (i = 1; i < 101; ++i)
{
if (i % 2 == 1)
{
sum += i;
++cut;
}
}
avg = 1.0 * sum / cut; //1.0默认是double
printf("sum = %d\n", sum);
printf("cut = %d\n", cut);
printf("avg = %f ", avg);
return 0;
} /* sum = 2500
cut = 50
avg = 50.000000*/
5.4 求1到100之间奇数之和,在求1到100之间偶数之和
#include<stdio.h>
int main(void)
{
int i;
int sum1 = 0;
int sum2 = 0;
for (i = 1; i < 101; ++i)
{
if (i % 2 == 1)
{
sum1 += i;
}
else
{
sum2 += i;
}
}
printf("sum1 = %d\n", sum1);
printf("sum2 = %d\n", sum2);
return 0;
} /* sum1 = 2500
sum2 = 2550*/
感谢观看