第5章 循环结构程序设计
- 【例5.1】求1+2+3+…+100。
-
#include<stdio.h> int main() { int i=1,sum=0; while(i<=100) { sum=sum+i; i++; } printf("sum=%d\n",sum); return 0; }
运行如下
- 【例5.6】用do…while实现1+2+3+…+100.
-
#include<stdio.h> int main() { int i=1,sum=0; do { sum=sum+i; i++; }while(i<=100); printf("sum=%d\n",sum); return 0; }
- 【例5.3】while与do…while循环的比较。
-
#include<stdio.h> int main() { int i,sum=0; printf("please enter i,i=?"); scanf("%d",&i); while(i<=10) { sum=sum+i; i++; } printf("sum=%d\n'",sum); return 0; }
-
#include <stdio.h> int main() { int i,sum=0; printf("please enter i,i=?");scanf("%d",&i); do { sum=sum+i; i++; } while(i<=10); printf("sum=%d\n",sum); return 0; }
-
【例5.4】在全系1000名学生中举行慈善募捐,当总数达到10万元时就结束,统计此时捐款的人数以及平均每人捐款的数目,
-
#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=%d\naver=%10.2f\n",i,aver); return 0; }
-
要求输出100`200不能被3整除的数。
-
#include <stdio.h> int main() {int n; for(n=100;n<=200;n++) { if(n%3==0) continue; printf("%d",n); } printf("\n"); return 0; }
- 输出以下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;i++) for (j=1;j<=5;j++,n++) {if(n%5==0) printf("\n"); printf("%d\t",i*j); } printf("\n"); return 0; }
- 【例5.7】用公式π/4≈1-1/3+1/5-1/7+…求π值。
-
# include<stdio.h> # include<math.h> int main() { int sign=1; double pi=0.0,n=1.0,term=1.0; while(fabs(term)>=1e-6) { pi=pi+term; n=n+2; sign=-sign; term=sign/n; } pi=pi*4; printf("pi=%10.8f\n",pi); return 0; }
- 求Fibbonacci(雯波那锲)数列前40个数。
-
# include<stdio.h> int main() { int f1=1,f2=1,f3; int i; printf("%12d\n%12d\n",f1,f2); for(i=1;i<=38;i++) { f3=f1+f2; printf("%12d\n",f3); f1=f2; f2=f3; } return 0; }
- 【例5.9】输入一个大于3的整数n,判断它是否为素数。
-
# include<stdio.h> int main() { int n,i; printf("please enter a integer number,n=?"); scanf("%d",&n); for(i=2;i<n;i++) if(n%i==0)break; if(i<n)printf("%d is not a prime number.\n",n); else printf("%d is a prime number.\n"); return 0; }
- 【例5.10】求100~200的全部素数。
-
# include<stdio.h> # include<math.h> int main() { int n,k,i,m=0; for(n=101;n<=200;n=n+2) { k=sqrt(n); for(i=2;i<=k;i++) if(n%i==0)break; if(i>=k+1) { printf("%d",n); m=m+1; } if(m%10==0)printf("\n"); } printf("\n"); return 0; }
- 【例5.11】译密文
-
# include<stdio.h> int main() { char c; c=getchar(); while(c!='\n') { if((c>='a'&&c<='z')||(c>='A'&&c<='Z') ) { if(c>='W'&&c<='Z'||c>='w'&&c<='z')c=c-22; else c=c+4; } printf("%c",c); c=getchar(); } printf("\n"); return 0; }