#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个学生,必须在运行的时候是有打印和输入,请高手做做)