例题4-1:
#include#include int main(void){ int denominator,flag; double item,pi; flag=1; denominator=1; item=1.0; pi=0; while(fabs(item)>=0.0001){ item=flag*1.0/denominator; pi=pi+item; flag=-flag; denominator=denominator+2; } pi=pi*4; printf("pi=%.4f\n",pi); return 0;}
例题4-2:
#includeint main(void){ int count,num; double grade,total; num=0; total=0; count=0; printf("Enter grades:"); scanf("%lf",&grade); while(grade>=0){ total=total+grade; num++; if(grade<60) count++; scanf("%lf",&grade); } if(num!=0){ printf("Grade average is %.2f\n",total/num); printf("Number of failures is %d\n",count); } else printf("Grade average is 0\n"); return 0;}
例题4-3:
#includeint main(void){ int count,number; count=0; printf("Enter a number:"); scanf("%d",&number); if(number<0)number=-number; do{ number=number/10; count++; }while(number!=0); printf("It contains %d digits.\n",count); return 0;}
运行结果1:
运行结果2:
例题4-4:
#includeint main(void){ int i,m; printf("Enter a number:"); scanf("%d",&m); for(i=2;i<=m/2;i++) if(m%i == 0) break; if(i>m/2 && m!=1) printf("%d is a prime number!\n",m); else printf("No!\n"); return 0;}
运行结果1:
运行结果2:
例题4-5:
#includeint main(void){ int mynumber=44; int count=0,yournumber; for(count=1;count<=5;count++){ printf("Input your number:"); scanf("%d",&yournumber); if(yournumber==mynumber){ printf("OK!you are right!\n"); break; } else if(yournumber>mynumber) printf("Sorry!your number is bigger than my number!\n"); else printf("Sorry!your number is smaller than my number!\n"); } printf("Game is over!\n"); return 0;}
例题4-6:
#includedouble fact (int n);int main(void){ int i; double sum; sum=0; for(i=1;i<=100;i++) sum=sum+fact(i); printf("1!+2!+...+100!=%e\n",sum); return 0;}double fact(int n){ int i; double result; result=1; for(i=1;i<=n;i++) result=result*i; return result;}
例题4-7:
#includeint main(void){ int i,j; double item,sum; sum=0; for(i=1;i<=100;i++){ item=1; for(j=1;j<=i;j++) item=item*j; sum=sum+item; } printf("1!+2!+...+100!=%e\n",sum); return 0;}
例题4-8-1:
#includeint main(void){ int i,mark,max,n; printf("Enter n:"); scanf("%d",&n); printf("Enter %d marks:",n); scanf("%d",&mark); max=mark; for(i=1;i
例题4-8-2:
#includeint main(void){ int mark,max; printf("Enter marks:"); scanf("%d",&mark); max=mark; while(mark>=0){ if(max
例题4-9:
#includeint main(void){ int x; printf("Enter x:"); scanf("%d",&x); while(x!=0){ printf("%d",x%10); x=x/10; } return 0;}
例题4-10:
#include#include int main(void){ int count,i,m,n; count=0; for(m=2;m<=100;m++){ n=sqrt(m); for(i=2;i<=n;i++) if(m%i==0) break; if(i>n){ printf("%6d",m); count++; if(count%10==0) printf("\n"); } } printf("\n"); return 0;}
例题4-11:
#includeint main(void){ int i,x1,x2,x; x1=1; x2=1; printf("%6d%6d",x1,x2); for(i=1;i<=8;i++){ x=x1+x2; printf("%6d",x); x1=x2; x2=x; } printf("\n"); return 0;}
例题4-12-1:
#includeint main(void){ int child,men,women; for(men=0;men<=45;men++) for(women=0;women<=45;women++) for(child=0;child<=45;child++) if(men+women+child==45&&men*3+women*2+child*0.5==45) printf("men=%d,women=%d,child=%d\n",men,women,child); return 0;}
例题4-12-2:
#includeint main(void){ int child,men,women; for(men=0;men<=15;men++) for(women=0;women<=22;women++){ child=45-women-men; if(men*3+women*2+child*0.5==45) printf("men=%d,women=%d,child=%d\n",men,women,child); } return 0;}
第四章也完工了。
这一章主要是循环结构,可用for、while和do-while这三种循环语句来实现循环。
差别在于,若事先给定了循环次数,首选for语句,它最清晰。
如果循环次数不明确,通常选用while和do-while语句。
以上。