include stdio h int main int i1 sum0

  • Slides: 94
Download presentation

例: #include <stdio. h> int main() { int i=1, sum=0; 不能少 while (i<=100) {

例: #include <stdio. h> int main() { int i=1, sum=0; 不能少 while (i<=100) { sum=sum+i; i++; } printf("sum=%dn", sum); return 0; } 复合语句

例: #include <stdio. h> int main() { int i=1, sum=0; while (i<=100) { sum=sum+i;

例: #include <stdio. h> int main() { int i=1, sum=0; while (i<=100) { sum=sum+i; i++; 不能丢,否则循环永不结束 } printf("sum=%dn", sum); return 0; }

用do---while语句实现循环 Ø 解题思路: sum=0 i=1 sum=sum+i i=i+1 Y i ≤ 100 N i=1; sum=0;

用do---while语句实现循环 Ø 解题思路: sum=0 i=1 sum=sum+i i=i+1 Y i ≤ 100 N i=1; sum=0; do { sum=sum+i; i++; }while(i<=100);

用do---while语句实现循环 #include <stdio. h> int main() { int i=1, sum=0; do { sum=sum+i; i++;

用do---while语句实现循环 #include <stdio. h> int main() { int i=1, sum=0; do { sum=sum+i; i++; }while(i<=100); printf("sum=%dn", sum); return 0; }

例5. 3 while和do---while循环的比较。 int i, sum=0; printf(“i=? ”); scanf(“%d”, &i); while(i<=10) { sum=sum+i; i++;

例5. 3 while和do---while循环的比较。 int i, sum=0; printf(“i=? ”); scanf(“%d”, &i); while(i<=10) { sum=sum+i; i++; } printf(“sum=%dn", sum); int i, sum=0; printf(“i=? ”); scanf(“%d”, &i); do { sum=sum+i; i++; }while(i<=10); printf(“sum=%dn", sum); 当while后面的表达式的第一次的值为“真”时, 两种循环得到的结果相同;否则不相同

例: � 程� 算sum=1+1/2+1/3+…+1/100的� int main() { int i=1; double sum=0. 0; 循环条件 while

例: � 程� 算sum=1+1/2+1/3+…+1/100的� int main() { int i=1; double sum=0. 0; 循环条件 while (i<=100) { 先判断 sum+=1. 0/i; 再执行 i++; } printf("sum=%dn”, sum); return 0; } int main() { int i=1; double sum=0. 0; do 先执行 { 再判断 sum+=1. 0/i; i++; 循环条件 } while(i<=100); 分号不可少 printf("sum=%dn”, sum); return 0; } 21

循环程序举例 sign=1, pi=0, n=1, term=1 当term ≥ 10 -6 pi=pi+term n=n+1 sing=-sign term=sign/n pi=pi*4

循环程序举例 sign=1, pi=0, n=1, term=1 当term ≥ 10 -6 pi=pi+term n=n+1 sing=-sign term=sign/n pi=pi*4 输出pi

#include <stdio. h> #include <math. h> int main() { int sign=1; double pi=0, n=1,

#include <stdio. h> #include <math. h> int main() { int sign=1; double pi=0, n=1, term=1; while(fabs(term)>=1 e-6) { pi=pi+term; 求绝对值的函数 n=n+2; sign=-sign; term=sign/n; } pi=pi*4; printf("pi=%10. 8 fn", pi); 只保证前5位小数是准确的 return 0; }

#include <stdio. h> #include <math. h> int main() { int sign=1; double pi=0, n=1,

#include <stdio. h> #include <math. h> int main() { int sign=1; double pi=0, n=1, term=1; while(fabs(term)>=1 e-6) { pi=pi+term; n=n+2; 改为 1 e-8 sign=-sign; term=sign/n; } pi=pi*4; printf("pi=%10. 8 fn", pi); return 0; }

5. 4用for 语句实现循环 i=1 i<=100 i++ for (i=1; i<=100; i++) { i ≤ 100

5. 4用for 语句实现循环 i=1 i<=100 i++ for (i=1; i<=100; i++) { i ≤ 100 printf("%d ", i ); } i=1 Y 输出i i=i+1 N

例: 求 1+2+3+……+100的� 高斯 10岁时的求解 1+100=101 2+99 =101 3+98 =101 4+97 =101 编写VC程序求解 void

例: 求 1+2+3+……+100的� 高斯 10岁时的求解 1+100=101 2+99 =101 3+98 =101 4+97 =101 编写VC程序求解 void main(void) { int i, sum; 50次 总和为 101× 50=5050 循环条件 for (i=1, sum=0; i<=100; i++) … 50+51=101 赋初值 sum=sum+i; 变量自增 循环体语句 printf(“sum=%dn”, sum); } 43

对比for循环和while循环 求 1+2+3+……+100 void main(void) { int i, sum; i=1; sum=0; { int i,

对比for循环和while循环 求 1+2+3+……+100 void main(void) { int i, sum; i=1; sum=0; { int i, sum; while(i<=100) for (i=1, sum=0; i<=100; i++) { sum=sum+i; i=i++; printf(“sum=%dn”, sum); } } for循环相对while 循环更为简洁 printf(“sum=%dn”, sum); 44 }

#include “iostream. h” void main() { int set=123; int guess, n, num; for(num=1; num<=6;

#include “iostream. h” void main() { int set=123; int guess, n, num; for(num=1; num<=6; num++) { for(n=1; n<=10; n++) { cout<<“guess”<<n; cin>>guess; if(guess==set) {printf(“Win!n”); break; } if(guess>set) printf(“Bigger!n”); if(guess<set) ) printf(“Smallern”); } if(n==11) printf(“Sorry! The number is%dn”, guess); } } 猜 数 程 序 5

例: #include <iostream. h> int main() { 无循环结束条件 int sum=0; for (int i=1; ;

例: #include <iostream. h> int main() { 无循环结束条件 int sum=0; for (int i=1; ; i++) { 当i>100�� 行if� 句 if (i>100) { break跳出for循� , 起 break; 到了� 束for循� 的作 } 用 sum=sum+i; } printf(“sum=%dn”, sum); 完成从1加到 100的功能 return 0; } 65

#include <stdio. h> #define SUM 100000 int main() 指定符号常量SUM代表 100000 { float amount, aver,

#include <stdio. h> #define SUM 100000 int main() 指定符号常量SUM代表 100000 { float amount, aver, total; int i; for (i=1, total=0; i<=1000; i++) { printf("please enter amount: "); scanf("%f", &amount); total= total+amount; if (total>=SUM) break; } aver=total / i ; printf(“num=%dnaver=%10. 2 fn“ , i, aver); return 0; }

#include <stdio. h> #define SUM 100000 int main() { float amount, aver, total; int

#include <stdio. h> #define SUM 100000 int main() { float amount, aver, total; int i; for (i=1, total=0; i<=1000; i++) 应该执行1000次 { printf("please enter amount: "); scanf("%f", &amount); total= total+amount; if (total>=SUM) break; } aver=total / i ; printf(“num=%dnaver=%10. 2 fn“ , i, aver); return 0; }

#include <stdio. h> #define SUM 100000 int main() { float amount, aver, total; int

#include <stdio. h> #define SUM 100000 int main() { float amount, aver, total; int i; for (i=1, total=0; i<=1000; i++) { printf("please enter amount: "); scanf("%f", &amount); total= total+amount; if (total>=SUM) break; 达到 10万,提前结束循环 } aver=total / i ; printf(“num=%dnaver=%10. 2 fn“ , i, aver); return 0; }

#include <stdio. h> #define SUM 100000 int main() { float amount, aver, total; int

#include <stdio. h> #define SUM 100000 int main() { float amount, aver, total; int i; for (i=1, total=0; i<=1000; i++) { printf("please enter amount: "); scanf("%f", &amount); total= total+amount; if (total>=SUM) break; } aver=total / i ; printf(“num=%dnaver=%10. 2 fn“ , i, aver); return 0; 实际捐款人数 }

#include <stdio. h> #define SUM 100000 int main() { float amount, aver, total; int

#include <stdio. h> #define SUM 100000 int main() { float amount, aver, total; int i; for (i=1, total=0; i<=1000; i++) { printf("please enter amount: "); scanf("%f", &amount); 只能用于循环语句和switch语 total= total+amount; 句之中,而不能单独使用 if (total>=SUM) break; } aver=total / i ; printf(“num=%dnaver=%10. 2 fn“ , i, aver); return 0; }

n=100 n≤ 200 Y n能被 3整除 N 输出n n=n+1 N Y for(n=100; n<=200; n++)

n=100 n≤ 200 Y n能被 3整除 N 输出n n=n+1 N Y for(n=100; n<=200; n++) { if (n%3==0) continue; printf("%d ", n); }

例: void main(void) { int i, j, x=0 ; for (i=0 ; i<2; i++)

例: void main(void) { int i, j, x=0 ; for (i=0 ; i<2; i++) { x++; for (j=0; j<=3; j++) { if ( j%2 ) continue; x++; } printf(“x=%dn”, x); } i=0 i<2 第一次 j 0 1 2 3 4 j%2 假 真 x 2 2 3 3 4 i=1 i<2 第二次 j 0 1 2 3 4 j%2 假 真 x 6 6 7 7 8 i=2 i<2 结束 � 出:x=8 80

例5. 6 输出以下4*5的矩阵。 1 2 3 4 5 2 4 6 8 10 3

例5. 6 输出以下4*5的矩阵。 1 2 3 4 5 2 4 6 8 10 3 6 9 12 15 4 8 12 16 20

例: #include <stdio. h> int main() { int i, j, n=0; for (i=1; i<=4;

例: #include <stdio. h> int main() { int i, j, n=0; for (i=1; i<=4; i++) 累计输出数据的个数 for (j=1; j<=5; j++, n++) { if (n%5==0) printf (“n”); printf ("%dt", i*j); } printf("n"); return 0; } 控制一行内输出 5个数据

例: #include <stdio. h> int main() { int i, j, n=0; for (i=1; i<=4;

例: #include <stdio. h> int main() { int i, j, n=0; for (i=1; i<=4; i++) for (j=1; j<=5; j++, n++) { if (n%5==0) printf (“n”); printf ("%dt", i*j); } printf("n"); return 0; } 双重循环

例: #include <stdio. h> int main() { int i, j, n=0; for (i=1; i<=4;

例: #include <stdio. h> int main() { int i, j, n=0; for (i=1; i<=4; i++) 控制输出 4行 for (j=1; j<=5; j++, n++) { if (n%5==0) printf (“n”); printf ("%dt", i*j); } printf("n"); return 0; }

例: #include <stdio. h> int main() { int i, j, n=0; for (i=1; i<=4;

例: #include <stdio. h> int main() { int i, j, n=0; for (i=1; i<=4; i++) for (j=1; j<=5; j++, n++) { if (n%5==0) printf (“n”); printf ("%dt", i*j); } printf("n"); return 0; } 控制每行中输出 5个数据

例: #include <stdio. h> int main() { int i, j, n=0; for (i=1; i<=4;

例: #include <stdio. h> int main() { int i, j, n=0; for (i=1; i<=4; i++) i=1时 for (j=1; j<=5; j++, n++) { if (n%5==0) printf (“n”); printf ("%dt", i*j); } printf("n"); return 0; } j由 1变到 5 i*j的值是 1, 2, 3, 4, 5

例: #include <stdio. h> int main() { int i, j, n=0; for (i=1; i<=4;

例: #include <stdio. h> int main() { int i, j, n=0; for (i=1; i<=4; i++) j也由 1变到 5 i*j的值是 2, 4, 6, 8, 10 for (j=1; j<=5; j++, n++) { if (n%5==0) printf (“n”); printf ("%dt", i*j); } printf("n"); return 0; }

例: int main(int argc, char* argv[]) { int n=0; printf("input a stringn”); loop: if(getchar()!='n')

例: int main(int argc, char* argv[]) { int n=0; printf("input a stringn”); loop: if(getchar()!='n') { 通� goto跳� ,if� n++; 句起到了循� 的作用 goto loop; } printf(“%dn”, n); return 0; }