300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 《C语言程序设计》第4版 何钦铭 颜晖主编 课后习题答案 第4章 课后习题

《C语言程序设计》第4版 何钦铭 颜晖主编 课后习题答案 第4章 课后习题

时间:2023-07-29 19:38:27

相关推荐

《C语言程序设计》第4版 何钦铭 颜晖主编 课后习题答案 第4章 课后习题

P077

#include<stdio.h>//练习4-4 int main(void){int x,count=0,y;printf("Enter x:");scanf("%d",&x);y=x;//保证最后初值不变 if(x<0){x=-x;}do{count++;x=x/10;}while(x!=0);//用while循环保证至少计数一次,即0这种为1位的不会出错 printf("%d为%d位数",y,count);return 0;}

P081

#include<stdio.h>//练习4-6,猜数字游戏 int main(void){int n,mynumber,yournumber,count=0;printf("Enter n(n>=4),mynumber(mynumber<=100):");scanf("%d%d",&n,&mynumber);while(count<n){printf("Enter yournumber:");scanf("%d",&yournumber);count++;if(yournumber>=0){if(mynumber<yournumber){printf("Too big\n");}else if(mynumber==yournumber){if(count<=1){printf("Bingo!\n");break;}else if(count<=3){printf("Lucky You!\n");break;}else if(count<n){printf("Good Guess!\n");break;}}else {printf("Too small\n");}}else {printf("Game Over!\n");goto out;//为了跳过count>=n的Game Over,不能使用break }}//循环后,count=n if(count>=n){printf("Game Over!\n");}out:return 0;}

P084

#include<stdio.h>//练习4-7 int main(void){int i,j,n;double fact,e;printf("Enter n:");scanf("%d",&n);e=1;for(i=1;i<=n;i++){fact=1;for(j=1;j<=i;j++){fact*=j;}e+=1.0/fact;}printf("e=%lf",e);return 0;}

P092

#include<stdio.h>int main(void){int score,max;//练习4-9 改后 printf("Enter scores:");scanf("%d",&score);max=score;//假设第一个成绩为最高分if(score<0){//如果先输入负数,则重新输入重新赋值为最高分 printf("请输入正数:");scanf("%d",&score);max=score; } while(score>=0){if(score>max){max=score;}scanf("%d",&score);//依次读入第二个、第三个成绩 }printf("max=%d\n",max);printf("\n");/*用for循环*/{ int n,mark,i,max;printf("Enter n:");scanf("%d",&n);if(n==0){//练习4-8,如果先输入0,增加这个if循环 printf("请输入正数n:");scanf("%d",&n);} printf("Enter %d marks:",n);scanf("%d",&mark);max=mark;for(i=1;i<n;i++){scanf("%d",&mark);//已经有一个数了,需要再读入一个数进行比较。如果放到if后面,最后一个数没有参与比较,会出错 if(mark>max){max=mark;}}printf("max=%d",max);}return 0;}

#include<stdio.h>int main(void){int n,i,min,x;//练习4-10 printf("Enter n:");scanf("%d",&n);printf("输入%d个正数:",n);scanf("%d",&x); min=x;for(i=1;i<n;i++){scanf("%d",&x);//只能循环n-1次,例:输入3个数,只循环2次,所以要先读取 if(x<min){min=x;}}printf("min=%d\n",min);printf("\n");/*统计素数并求和(练习4-11)*/{int m,n,i,k,flag,count,sum;printf("Enter m,n(1<=m<=n<=500):");scanf("%d%d",&m,&n);flag=1;count=0;sum=0;for(i=m;i<=n;i++){if(i<=1){flag=0;}else if(i==2){flag=1;}else {flag=1;for(k=2;k<=i/2.0;k++){if(i%k==0){flag=0;} }}if(flag==1){sum+=i;count++;}} printf("%d~%d之间的素数个数为%d,和为%d",m,n,count,sum);}return 0;}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。