学完break 和 continue 实践时,碰到一题
先发帖 求答案,散散分。 然后自己 去试一下。题目如下:输入一批考试分数,用-1作为结束标志,
若输入大于100,则重新输入,然后计算出最高分
、最低分和平均值
网上是有答案的,你们自己编。我也自己编。
我主要是为了 试试自己行不行,不行的话 该怎么编。
行的话,看看 和你们的有什么差别。
/*介绍:输入一批考试分数,用-1作为结束标志, 若输入大于100,则重新输入,然后计算出最高分 、最低分和平均值 2011年8月21日17:57:33*/ #include<stdio.h> main(void) { int vol1,vol2 = 0,vol3 = 0; int vol4 = 0,vol6=101; double vol5; printf("请输入考试分数,输入完毕之后,再输入-1 标志结束:"); while(vol1 != -1) { scanf("%d",&vol1); if(vol1 <= 100 && vol1 != -1) vol2 += vol1; else { continue; } if(vol3 <= vol1) { vol3 = vol1; } if(vol6 > vol1) { vol6 = vol1; } vol4 += 1; } vol5 = vol2 / vol4; printf("最高分为:%d 最低分为:%d 平均分为%f",vol3,vol6,vol5); }自己编了一个,感觉好傻逼。 好垃圾。 自己好差。
#include <stdio.h> int main(void) { int sum=0,count=0; int num[100]={0}; printf("输入分数:(整数)\n"); while(scanf("%d",&num[count])) { if(num[count]==-1) break; if(num[count]>100) continue; sum+=num[count++]; } int min,max; min=max=num[0]; for(int i=1;i<count;i++) if(num[i]>max) max=num[i]; else if(num[i]<min) min=num[i]; printf("最高分为%d,最低分为%d,平均分为%.2f\n",max,min,(float)sum/count); return 0; }
/*介绍:输入一批考试分数,用-1作为结束标志, 若输入大于100,则重新输入,然后计算出最高分 、最低分和平均值 2011年8月21日17:57:33*/ #include<stdio.h> int main() { float sum=0,mark,Mark[200],max,min; int i=0,count; while(1)//输入分数 { scanf("%f",&mark); if(mark==-1) { break; } else if(mark>100) { continue; } else { Mark[i++]=mark; } } count=i; min=max=Mark[0]; for(i=0;i<count;i++) { if(min>Mark[i]) { min=Mark[i];//找最低分 } if(max<Mark[i]) { max=Mark[i];//找最高分 } sum+=Mark[i];//求和 } printf("最高分:%f\n最低分:%f\n平均分:%f\n",max,min,sum/count); return 0; }
/* 题目:输入一批考试分数,用-1作为结束标志,若输入大于100,则重新输入,然后计算出最高分、最低分和平均值 要求:用 break 和 continue 来写 时间:2011年8月22日12:15:29 目的:论坛回帖,尝试编程,练习break和continue用法 */ # include <stdio.h> int main(void) { float i; float min; float max; float avg; float sum=0; int n=0; do { printf("输入考试成绩,直到输入-1结束\n"); scanf("%f", &i); if (i > 100) continue; if (i == -1) break; sum += i; ++n; if (1==n) { min = i; max = i; } else if (min >= i) min = i; else if (max <= i) max = i; } while (1); printf("最差成绩为 %f\n",min); printf("最好成绩为 %f\n",max); avg = sum / n; printf("平均成绩为 %f\n",avg); return 0; } /* 在VC++6.0中的输出结果为: ———————————— 输入考试成绩,直到输入-1结束 50 输入考试成绩,直到输入-1结束 20 输入考试成绩,直到输入-1结束 30 输入考试成绩,直到输入-1结束 60 输入考试成绩,直到输入-1结束 110 输入考试成绩,直到输入-1结束 90 输入考试成绩,直到输入-1结束 -1 最差成绩为 20.000000 最好成绩为 90.000000 平均成绩为 50.000000 Press any key to continue ———————————— */