学完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
————————————
*/
