C语言程序设计第六次作业 |
您所在的位置:网站首页 › eps计算题 › C语言程序设计第六次作业 |
对任意一个自然数N0,先将其各位数字相加求和,再将其和乘以3后加上1,变成一个新自然数N1;然后对N1重复这种操作,可以产生新自然数N2;……多次重复这种操作,运算结果最终会得到一个固定不变的数Nk,就像掉入一个数字“陷阱”。 本题要求对输入的自然数,给出其掉入“陷阱”的过程。 3.有如下问题:输入一批学生成绩,以-1作为结束,计算学生的平均成绩。 要求分别用for语句、while语句、do while语句三种循环语句实现,并说明你认为哪种形式更合适? for循环:
#include int main() { int x = 0,sum = 0,i = 0; float average = 0.0; for(;;) { scanf("%d",&x); if(x != -1) { sum = sum + x; i++; } else { break; } } average = sum/i; printf("%f",average); return 0; }
while循环:
#include #include int main() { int sum,x,i; double average; sum=0; i=0; while(1) { scanf("%d",&x); if(x==-1) { printf("average=0.00"); exit(0); } else { sum+=x; i++; } } average=(double)sum/i; printf("%f",average); }
do while循环: #include #include int main() { int sum,x,i; double average; sum=0; i=0; do { scanf("%d",&x); if(n==-1) { printf("average=0.00"); exit(0); } else { sum+=x; i++; } }while(1); average=(double)sum/i; printf("%f",average); } 我认为用for更合适,因为for语句可以在表达式中实现循环变量的初始化,比较方便,用着顺手。 4.运行下面程序,输入1到10,结果分别是什么?为什么? (1) #include int main() { int n,s,i; s = 0; for(i = 1; i =1) sum=1.0; else { while(fabs(x)>eps) { x=n*1.0/m; sum=sum+x; n=-n; m=m+3; } } printf("sum = %0.6lf\n",sum); return 0; } (4)实验分析 熟悉while,for,do while的使用,并清除什么时候用什么合适。 (5)pta提交 第二题:猜数字游戏 (1)令游戏机随机产生一个100以内的正整数,用户输入一个数对其进行猜测,需要你编写程序自动对其与随机产生的被猜数进行比较,并提示大了(“Too big”),还是小了(“Too small”),相等表示猜到了。如果猜到,则结束程序。程序还要求统计猜的次数,如果1次猜出该数,提示“Bingo!”;如果3次以内猜到该数,则提示“Lucky You!”;如果超过3次但是在N(>3)次以内(包括第N次)猜到该数,则提示“Good Guess!”;如果超过N次都没有猜到,则提示“Game Over”,并结束程序。如果在到达N次之前,用户输入了一个负数,也输出“Game Over”,并结束程序。 (3)源代码
#include int main() { int x = 0,N = 0,i = 0,b = 0; scanf("%d%d",&x,&N); for(i = 1;i x) { printf("Too big\n"); } else if(b < x) { printf("Too small\n"); } else if(x == b) { if(i == 1) { printf("Bingo!"); break; } else if(i 1) { printf("Lucky You!"); break; } else if(i > 3) { printf("Good Guess!"); break; } break; } if(i >= N) { printf("Game Over"); break; } } return 0; }
(4)实验分析: 跳出if循环的话,要加break语句! (5)pta提交 第三题:求奇数和 (1)题目:本题要求计算给定的一系列正整数中奇数的和。 (2)流程图: (3)源代码:
#include int main() { int x,sum=0; while(1) { scanf("%d",&x); if(x |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |