永发信息网

C语言程序,谁帮我编个更简易点的

答案:1  悬赏:60  手机版
解决时间 2021-05-03 08:53
  • 提问者网友:美人性情
  • 2021-05-02 08:34

#define CHINESE_LESSON 0
#define ENGLISH_LESSON 1
#define MATH_LESSON 2

struct score
{
int Chinese ;
int English;
int Math;
int total;
}

struct sum_up_per
{
int totalscore;
int maxscore;
int minscore;
}

struct sum_up_all
{
int maxscore;
int minscore;
}

void totalscoreall(score sr[10],sum_up_all *su)
{
int i, max=300, min=0;
for(i=0; i<10; i++)
{
sr[i].total=sr[i].Chinese+sr[i].English+sr[i].Math;
if(sr[i].total>max)
max=sr[i].total;
if(sr[i].total<min)
min=sr[i].total;
}
*su.maxscore=max;
*su.minscore=min;
}

int dete_unqualified( score sr[10]))
{
int i, j, num=10;
for(i=0; i<10; i++)
{
if(sr[i].total<180)
{
num--;
for(j=i; j<num; j++)
{
sr[j].Chinese=sr[j+1].Chinese;
sr[j].English=sr[j+1].English;
sr[j].Math=sr[j+1].Math;
sr[j].total=sr[j+1].total;
}
}
}
return num;
}

void totalscoreper(score sr[10], int lesson,sum_up_per *su)
{
int sum,i,max=0,min=100;
swich(lesson)
{
case CHINESE_LESSON:
for(i=0; i<10; i++)
{
if(sr[i].Chinese>max)
max=sr[i].Chinese;
if(sr[i].Chinese<min)
min=sr[i].Chinese;
sum+=sr[i].Chinese;
}
break;
case ENGLISH_LESSON:
for(i=0; i<10; i++)
{
if(sr[i].English>max)
max=sr[i].English;
if(sr[i].English<min)
min=sr[i].English;
sum+=sr[i].English;
}
break;
case MATH_LESSON :
for(i=0; i<10; i++)
{
if(sr[i].Math>max)
max=sr[i].Math;
if(sr[i].Math<min)
min=sr[i].Math;
sum+=sr[i].Math;
}
break;
}
*su.totalscore=sum;
*su.maxscore=max;
*su.minscore=min;
}



void inputsr(score sr[10])
{
int i=10;
for(i=0; i<10; i++)
{
printf(“\nInput the NO.%d Chinese score:”,i);
scanf(“%f”,&sr[i].Chinese);
printf(“\nInput the NO.%d English score:”,i);
scanf(“%f”,&sr[i].English);
printf(“\nInput the NO.%d Math score:”,i);
scanf(“%f”,&sr[i].Math);
}
}

int main()
{
score sr[10];
sum_up_per sup;
sum_up_all sua;
int i;
inputsr(sr);
//计算语文
totalscoreper(sr,CHINESE_LESSON,&sup);
printf("chinese:total=%d,max=%d,min=%d\n",sup.totalscore,
sup.maxscore,sup.minscore);
//计算英语
totalscoreper(sr,ENGLISH_LESSON,&su);
printf("english:total=%d,max=%d,min=%d\n",sup.totalscore,
sup.maxscore,sup.minscore);
//计算数学
totalscoreper(sr,MATH_LESSON,&su);
printf("math:total=%d,max=%d,min=%d\n",sup.totalscore,
sup.maxscore,sup.minscore);

//计算三课总成绩
totalscoreall(sr,&sua);
for(i=0; i<10; i++)
{
printf("NO:%d all score is %d",i,sr[i].total);
}
printf("max score is %d\n min score is %d\n",sua.maxscore,
sua.minscore);
//删除不合格的学生
printf("%d unqualified\n",dete_unqualified( sr));
return 0;
}

用C语言做,题目如下:10个同学组成班级,语文,英文,数学求单科总分,最高分,最低分,三科成绩总分,最高分,最低分,然后把不合格的学生给删除掉,而且要执行成功是能够删除那些成绩低的,成绩合格就没有必要(注意:题目已经写明是10个学生,必须在运行的时候是有打印和输入,请高手做做)
最佳答案
  • 五星知识达人网友:往事埋风中
  • 2021-05-02 09:06
你好 楼主。

很幸运的看到你的问题。
但是又很遗憾到现在还没有人回答你的问题。也可能你现在已经在别的地方找到了答案,那就得恭喜你啦。
可能是你问的问题有些专业了,没人会。或者别人没有遇到或者接触过你的问题,所以帮不了你。建议你去问题的相关论坛去求助,那里的人通常比较多,也比较热心,可能能快点帮你解决问题。
希望我的回答也能够帮到你!
祝你好运。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯