帮帮我哦,计算机2级题
从键盘上输入70个学生的成绩(百分制)并存入数组S,编程序完成如下功能:1统计计算出平均成绩,并输出低于平均分的学生成绩;
2找出最高分和 最底分同学,并输出最高分和 最底分及其下标;
3按五级记分输出成绩:90~100分输出 'A',80~89分输出 'B',70 ~79分输出 'C',60~69分输出 'D',0~59分输出 'E'。
我用同学的帐号登陆的,请帮帮我,怎么做啊?
搜索更多相关的解决方案:
计算机
----------------解决方案--------------------------------------------------------
#include "stdio.h"
#define N 70
main()
{
int s[N],i,score=0,avg=0,max,min,flag1=0,flag2=0;
for(i=0;i<N;i++)
{
printf("input score:");
scanf("%d",&s[i]);
score +=s[i];
}
avg=score/N;
printf("the avg:%d\n",avg);
for(i=0;i<N;i++)
{
if(s[i]<avg)
printf("less avg:%d\n",s[i]);
else
continue;
}
max=s[0];min=s[0];
for(i=1;i<N;i++)
{
if(s[i]>max)
{
max=s[i];
flag2=i;
}
else
continue;
}
for(i=1;i<N;i++)
{
if(s[i]<min)
{
min=s[i];
flag1=i;
}
else
continue;
}
printf("the max is%d,\tflag is: %d\n",max,flag2+1);
printf("the min is%d,\tflag is: %d\n",min,flag1+1);
for(i=0;i<N;i++)
{
if(s[i]>=90)
printf("the score is : A\n");
else if(s[i]>=80&&s[i]<=89)
printf("the score is : B\n");
else if(s[i]>=70&&s[i]<=79)
printf("the score is : C\n");
else if(s[i]>=60&&s[i]<=69)
printf("the score is : D\n");
else
printf("the score is :F\n");
}
getch();
}
这样你自己看看吧.
----------------解决方案--------------------------------------------------------
for(i=1;i<9;i++)
{
if(s[i]>max)
max=s[i];
else if(s[i]<min)
min=s[i];
else
continue;
}
取最大最小值,不需用两次大循环.用一次就OK了,效率优先
----------------解决方案--------------------------------------------------------
楼上的意见很对,程序写出来了很不错,效率做到了更不错
----------------解决方案--------------------------------------------------------