
请各位C语言高手帮帮忙,我将所有分数送上!!!
请选择合适的排序算法设计一个程序进行学生成绩管理。假设对某个班级的学生的5门课程的学习成绩进行管理。要求:①求每门课程的平均成绩。②输出每门课程成绩优秀的学生名单及成绩。...
请选择合适的排序算法设计一个程序进行学生成绩管理。假设对某个班级的学生的5门课程的学习成绩进行管理。
要求:①求每门课程的平均成绩。②输出每门课程成绩优秀的学生名单及成绩。③输出只要有1门课程不及格的学生名单及其每门成绩。④对5门课程中可以指定某一门课程进行排序。 展开
要求:①求每门课程的平均成绩。②输出每门课程成绩优秀的学生名单及成绩。③输出只要有1门课程不及格的学生名单及其每门成绩。④对5门课程中可以指定某一门课程进行排序。 展开
1个回答
展开全部
#include<stdio.h>
#define stud 30
#define course 3
int input(long num[],int score[][course]);
void total(int score[][course],long num[],int sum[],float aver[],char c[],int n);
void print(long num[],int score[][course],int sum[],float aver[],char c[],int n);
void main()
{
int n,score[stud][course],sum[stud];
long num[stud];
float aver[stud];
char c[stud];
n=input(num,score);
total(score,num,sum,aver,c,n);
print(num,score,sum,aver,c,n);
}
int input(long num[],int score[][course])
{
int i,j,n;
printf("请输入学生总数n(n<=30):");
scanf("%d",&n);
printf("请输入学生学号及各科成绩:MT EN PH/n");
for(i=0;i<=n;i++)
{
scanf("%d",num[i]);
for(j=0;j<course;j++)
{
scanf("%d",score[i][j]);
}
}
return n;
}
void total(int score[][course],long num[],int sum[],float aver[],char c[],int n)
{
int i,j;
for(i=0;i<n;i++)
{
sum[i]=0;
for(j=0;j<course;j++)
{
sum[i]=sum[i]+score[i][j];
}
aver[i]=(float)sum[i]/course;
if((score[i][0]>=90)&&(score[i][1]>=90)&&(score[i][2]>=90))
{
c[i]='Y';
}
else
{
c[i]='N';
}
}
}
void print(long num[],int score[][course],int sum[],float aver[],char c[],int n)
{
int i,j;
printf("Result:/n");
printf("NO./t MT/t EN/t PH/t SUM/t AVER/t >90/n");
for(i=0;i<n;i++)
{
printf("%4ld/t",sum[i]);
for(j=0;j<course;j++)
{
printf("%4d/t",score[i][j]);
}
printf("%5d/t%6.1f/t%c/n",sum[i],aver[i],c[i]);
}
}
#define stud 30
#define course 3
int input(long num[],int score[][course]);
void total(int score[][course],long num[],int sum[],float aver[],char c[],int n);
void print(long num[],int score[][course],int sum[],float aver[],char c[],int n);
void main()
{
int n,score[stud][course],sum[stud];
long num[stud];
float aver[stud];
char c[stud];
n=input(num,score);
total(score,num,sum,aver,c,n);
print(num,score,sum,aver,c,n);
}
int input(long num[],int score[][course])
{
int i,j,n;
printf("请输入学生总数n(n<=30):");
scanf("%d",&n);
printf("请输入学生学号及各科成绩:MT EN PH/n");
for(i=0;i<=n;i++)
{
scanf("%d",num[i]);
for(j=0;j<course;j++)
{
scanf("%d",score[i][j]);
}
}
return n;
}
void total(int score[][course],long num[],int sum[],float aver[],char c[],int n)
{
int i,j;
for(i=0;i<n;i++)
{
sum[i]=0;
for(j=0;j<course;j++)
{
sum[i]=sum[i]+score[i][j];
}
aver[i]=(float)sum[i]/course;
if((score[i][0]>=90)&&(score[i][1]>=90)&&(score[i][2]>=90))
{
c[i]='Y';
}
else
{
c[i]='N';
}
}
}
void print(long num[],int score[][course],int sum[],float aver[],char c[],int n)
{
int i,j;
printf("Result:/n");
printf("NO./t MT/t EN/t PH/t SUM/t AVER/t >90/n");
for(i=0;i<n;i++)
{
printf("%4ld/t",sum[i]);
for(j=0;j<course;j++)
{
printf("%4d/t",score[i][j]);
}
printf("%5d/t%6.1f/t%c/n",sum[i],aver[i],c[i]);
}
}
参考资料: sername_normal
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询