
程序设计基础(上) 张立红 13405330459(88028) QQ:2653453357 9#501
程序设计基础(上) 张立红 13405330459(88028) QQ:2653453357 9#501

6.1循环控制结构-本章知识点 6.1循环控制结构 6.2 while语句 6.3 do while语句 6.4逗号运算符和逗号表达式 6.5for语句 6.6空语句在循环中的使用 6.7循环语句的选择 6.8循环嵌套 6.9 break和continue语句
6.1 循环控制结构-本章知识点 6.1 循环控制结构 6.2 while语句 6.3 do while语句 6.4 逗号运算符和逗号表达式 6.5 for语句 6.6 空语句在循环中的使用 6.7 循环语句的选择 6.8 循环嵌套 6.9 break和continue语句

循环思维的建立 ·求1+2+3+.+100的值 i=1;S=0; ①设:s表示和,循环100次, 第i次循环将累加到s; N ②s初值为0,初值为1; ik=100 ③ 每循环一次:增加1,直 Y 到i是100。 s=s+i; ·算法? i=i+1; 输出s;
• 求1+2+3+.+100的值 ① 设:s表示和,循环100次, 第i次循环将i累加到s; ② s初值为0,i初值为1; ③ 每循环一次:i增加1,直 到 i是100。 • 算法? 循环思维的建立 i=1;s=0; i<=100 s=s+i; i = i + 1; Y N 输出 s;

6.5for循环-P101 执行流程: 求解表达式1 格式: N 表达式2 for(表达式1;表达式2;表达式3) 循环体 循环体 求解表达式3 含义:fo(循环变量赋初值;循环 结束条件;循环变量变化) for语句的下 一条语句 注意:循环体是多个语句时,必须用复合语句 4
4 6.5 for循环 -P101 格式: for (表达式1;表达式2;表达式3) 循环体 N 表达式2 循环体 Y 求解表达式1 求解表达式3 含义:for(循环变量赋初值;循环 结束条件;循环变量变化) 注意:循环体是多个语句时,必须用复合语句 执行流程: for语句的下 一条语句

求1+2+3+.+100的值-for语句实现: ①include ②int main() i=1;sum=0; ③{ ④ int i,sum=0; ⑤ for(i=1;i<=100;i++) N ⑥ ik=100 ⑦ sum sum+i; ⑧ ⑨ printf("sum=%d",sum); Y ⑩ return 0; ①} sum=sum+i; i=+1; 思考:如何求阶乘? fact=1*2*3*4*.*100 输出sum;
i=1;sum=0; i ② int main( ) ③ { ④ int i, sum=0; ⑤ for ( i = 1; i <= 100; i ++) ⑥ { ⑦ sum = sum+i; ⑧ } ⑨ printf("sum=%d",sum); ⑩ return 0; ⑪ } 思考:如何求阶乘? fact = 1*2*3*4*.*100

for语句的灵活运用 int i=1,sum=0; int i=1,sum=0; for(;i=168) break; for(;;) (2) .j (5) int i,sum=0; for(i=1;i<=100;) for(i=1;i<=188;sum+=i,i++);(6) sum=sum+i; i++; 3 恩
for语句的灵活运用

迭代法程序举例-for循环: 计算:2+22+222+.+2222222=??? ①include ②int main(0 ③{inti; ④ long int t=2,s=0; ⑤ for (i=1;i<=7;i++) ⑥ ⑦ s=s+t; ⑧ tet*10+2; ⑨ ⑩ printf("%ld",s); 2469134 ① return 0; ②
迭代法程序举例-for循环: ① #include ② int main() ③ { int i; ④ long int t=2,s=0; ⑤ for (i=1;i<=7;i++) ⑥ { ⑦ s=s+t; ⑧ t=t*10+2; ⑨ } ⑩ printf("%ld",s); ⑪ return 0; ⑫ }

数列求和 1134-数列求和 Time Limit:1000 ms Memory Limit:32768 KiB Submit Statistic Problem Description 数列求和是一类常见的问题,本题有一定的代表性: 求s=a+aa+aaa+aaaa+,+aaaa(n位) ① int a,n,i; 其中,ā的值由键盘输入,位数n也由键盘输入。 ② long int t,s=0; Input ③scanf("%d%d",&a,&ni ④ t=a; 第一行输入ā的值: 第二行输入位数n。 ⑤ for (i=1;i<=n;i++) ⑥ Output ⑦ S=S+t街 输出对个数完成求和运算后的结果 ⑧ tt*10+a; 比如a=3,n=6时,s=3+33+333+3333+33333+333333 ⑨ Sample Input ⑩ printf("%ldIn",s); 3 6 Sample Output 370368
1134-数列求和 ① int a,n,i; ② long int t,s=0; ③ scanf("%d%d",&a,&n); ④ t=a; ⑤ for (i=1;i<=n;i++) ⑥ { ⑦ s=s+t; ⑧ t=t*10+a; ⑨ } ⑩ printf("%ld\n",s);

做乘法 2249一做乘法 Time Limit:1000MS Memory Limit:65536KB Submit Statistic Problem Description 请用C语言编写一个程序。此程序接收一个正整数N,然后打印输出“N次N*1->N)格式”的数据。例如:此程序接收正整数5,那会输出以下格式的数据 51=5 5*2=10 Example Input 5*3=15 ① int n,i; 5*4=20 ②scanf("%d",&n); 5 5*5=25 ③for(i=1;ik=n;i++) ④ printf("%d*%d=%din",n,i,n*i); Input Example Output 只有-个正整数N(N<=100), 5*1=5 Output 5*2=10 5*3=15 5*4=20 输出共N行数据,如上面的例子所示。 5*5=25
① int n,i; ② scanf("%d",&n); ③ for(i=1;i<=n;i++) ④ printf("%d*%d=%d\n" ,n,i,n*i); 2249—做乘法

2250一简单计算 简单计算 Time Limit:1000MS Memory Limit:65536KB Submit Statistic Problem Description 接受从键盘输入的N个整数,输出其中的最大值、最小值和平均值(平均值为整除的商)。 ① int n,i,a,ma,mi,s; Input ② scanf("%d",&n); ③ scanf("%d",&a); ∥输入第一个数 第-行-个正整数N(Nma)ma=a; 打擂台 ⑨ if(a<mi)mi=a; 打擂台 12354 ⑩ s=s+a; ① Example Output ② printf("%d%d %dIn",ma,mi,s/n); 513
2250—简单计算 ① int n,i,a,ma,mi,s; ② scanf("%d",&n); ③ scanf("%d",&a); // 输入第一个数 ④ ma=a;mi=a;s=a; // 第一个数做初 值 ⑤ for (i=2;ima) ma=a; //打擂台 ⑨ if (a<mi) mi=a; //打擂台 ⑩ s=s+a; ⑪ } ⑫ printf("%d %d %d\n",ma,mi,s/n);