知识点总结
1.关于for语句的介绍
for语句由三部分构成:1.预处理 2.控制表达式 3.收尾处理
执行顺序如下图所示:
2.执行n次循环的for语句和while语句(多复习,要搞清楚循环字母和数字之间的逻辑关系!)
3.表达式语句和空语句
分类题型
1.使用for语句递增显示从0到输入的正整数为止的各个整数
代码4-11
int main()
{
int a,i;
printf("请输入1个正整数:"), scanf("%d", &a);
for (i = 0; i <= a; i++)
printf("%d ", i);
putchar('\n');
}
2.使用for语句实现固定次数的循环
输入1个整数,连续显示出该整数个*(使用for语句)
代码4-12
int main()
{
int a, b;
printf("正整数:"), scanf("%d", &a);
for (b = 0; b < a; b++)
{
putchar('*');
putchar('\n');
}
return 0;
}
3.输入规定个数个整数并显示出它们的合计值和平均值(使用for语句)
代码4-13
int main()
{
int num, sum=0; //num输入的整数个数,sum 和
int i ,a; //a为每次输入的整数
printf("输入多少个整数:"), scanf("%d", &num);
while (num < 0) {
printf("请输入正整数!\n");
printf("请重新输入:"), scanf("%d", &num);
}
for (i = 0; i < num; i++) //先执行循环体,后执行收尾处理 ,<=一定会多一位,<号时,最后的i=num,<=时,i比num大一位,博客详细写
{
printf("NO.%d:", i+1 ), scanf("%d", &a); // i的情况 i=0,1 i=1,2 i=2,3 i=3,4 i=4,5 i=6, 7
sum += a;
}
printf("合计值:%d\n平均值:%.2f\n", sum, (double)sum / num);
}
控制表达式中如果是 <=, 则输出的字母一定会多一位,<号时,最后的i=num,<=时,i比num大一位!
4.编写一段程序,求1到n的和,n的值从键盘输入。
练习4-13
int main()
{
int a, b;
int sum=0;
printf("请输入n的值:"), scanf("%d", &a);
for (b = 0; b < a; b++)
{
printf("NO.%d:%d\t", b + 1,b+1);
sum += b + 1;
}
printf("1到%d的和是%d", a, sum);
return 0;
}
运算过程为:
b=0,sum=0+1 对应n=1
b=1,sum=1+2 对应n=2
5.练习4-14
int main() //取余计算
{
int a, b,c;
printf("输入1个整数"), scanf("%d", &a);
for (b = 1; b <= a; b++)
{
c = b % 10;
printf("%d",c);
if (c == 0)
printf("\n");
}
return 0;
}
6.练习4-15
int main()
{
int a, b, c;
printf("开始数值:"), scanf("%d", & a);
printf("结束数值:"), scanf("%d", & b);
printf("间隔数值:"), scanf("%d", & c);
int g;
double t;
for (g = a; g <= b; g += c)
{
t = (g - 80) * 0.7;
printf("身高是:%d cm\t 体重是:%.2fkg\n", g,t );
}
return 0;
}
7.偶数的枚举
显示输入的整数值以下的偶数
int main()
{
int a, i;
printf("输入1个整数值:"), scanf("%d", &a);
//方法1,使用if语句
/*for (i = 1; i <= a; i++) //i=1 <=应不应该有?
{
if (i % 2 == 0)
printf("%d\t", i);
}*/
//方法2,for语句中直接使用复合运算符
for (i = 2; i <= a; i += 2) //i=2, <=应不应该有?,求该整数值以下的正偶数,不应该包含该输入的整数
printf("%d", i);
return 0;
}
注意此题题干为以下,但是答案用<=,答案存疑
8.约数的枚举
显示输入的整数值的所有约数
代码4-15
int main()
{
int a, b;
printf("请输入1个整数值:"), scanf("%d", &b);
for (a = 1; a <= b; a++) //a<=b,最后输出a会比b大1,如果用<,又会无法输出整数自身的约数值
if (b % a == 0)
printf("%d\n\t", a);
return 0;
}
a<=b,最后输出a会比b大1,如果用<,又会无法输出整数自身的约数值
9.循环语句
编写一段程序,输入1个整数值,显示该整数值以下的所有奇数
练习4-16
int main()
{
int a, b;
printf("输入1个整数值:"), scanf("%d", &b);
for (a = 1; a < b; a++)
//不能用while,否则会无限循环
//while (a % 2 == 1)
//printf("%d", a);
if (a % 2 == 1)
printf("%d ", a);
return 0;
}
10.编写1段程序,像右边这样显示1到n的整数值的二次方
练习4-17
int main()
{
int a, b;
printf("输入n的值:"), scanf("%d", &a);
for (b = 1; b <= a; b++)
printf("%d的二次方是%d \n", b, b * b);
return 0;
11.编写一段程序,输入1个整数值,显示该整数值个' * '。每显示5个就进行换行
练习4-18
int main()
{
int b,i;
printf("显示多少个*:"), scanf("%d", &b);
for (i = 1; i <= b; i++)
{
putchar('*');
if (i %5== 0)
putchar('\n');
}
return 0;
}
12.练习4-19
int main()
{
int a, i;
int b = 0;
printf("输入整数值:"), scanf("%d", &a);
for (i = 1; i <= a; i++)
/*while (a % i == 0) //while语句会无限循环第一个整数值的约数1
{
printf("%d", i);
b++;
}*/
if (a % i == 0)
{
printf("%d \n", i);
b++;
}
printf("约数有%d个", b);
}