裴佳欣的爸爸妈妈图片:悬赏问题!

来源:百度文库 编辑:高考问答 时间:2024/05/11 05:29:23
用C语言做!
从键盘输入一个班(全班有30人)学生的学号、姓名、M门课的成绩,分别统计下列内容:
(1)统计每个学生的总分和平均分。
(2)按总分由大到小排名次。
(3)打印出成绩在全班平均分及平均分之上的学生名单。

你真行。这样的作业也能做出来。

用C语言做!
从键盘输入一个班(全班有30人)学生的学号、姓名、M门课的成绩,分别统计下列内容:
(1)统计每个学生的总分和平均分。
(2)按总分由大到小排名次。
(3)打印出成绩在全班平均分及平均分之上的学生名单。
/*data*/
students
stuct
/*input*/
gets
/*statistic*/

/*print*/

void Course(float x[5][30])
{
int i,j;
float m=0;
printf("Please input the code name of course\n");
scanf("%d",&i);
for(j=0;j<30;j++)
m+=x[i][j];
m/=30;
printf("The average mark of course that you input is %f\n",m);
}
void Student(float x[5][30])
{
int i,j;
float m=0;
printf("Please inputs the student number\n");
scanf("%d",&j);
for(i=0;i<5;i++)
{printf("%f ",x[i][j];
m+=s[i][j];}
printf("\n");
m/=5;
printf("You input the student number average result is %f\n",m);
}
void Mark(float x[5][30])
{
int i,j,m=0;
float Small,big;
printf("Please input the code name of course\n");
scanf("%d",&i);
printf("Please inputs the minimum value\n");
scanf("%f",&Small);
printf("Please inputs the maximum value\n");
scanf("%f",&Big);
for(j=0;j<30;j++)
{if(x[i][j]>=Small&&x[i][j]<=big)
{m+=1;
printf("Student number is %d Result is %f\n",j,x[i][j]);}
}
printf("Population is %d\n",m)
}
void Fail(float x[5][30])
{
int i,j,m=0;
float Points;
printf("Please input the code name of course\n");
scanf("%d",&i);
printf("Please inputs passes an examination the points");
scanf("%f",&Points);
for(j=0;j<30;j++)
{
if(x[i][j]<Points)
{printf("Does not pass an examination the student number");
printf("%d ",j);
m+=1;}
}
printf("\n");
printf("Does not pass an examination the population is %d\n",m)
}
void Sequencing(float x[5][30])
{
int i,j,n;
float m=0;
printf("Please input the code name of course\n");
scanf("%d",&i);
for(n=1;n<30;n++)
for(j=0;j<30-n;j++)
{if(x[i][j]<x[i][j+1])
{m=x[i][j];
x[i][j]=x[i][j+1];
x[i][j+1]=m;}
}
for(j=0;j<30;j++)
printf("%f\n",x[i][j]);
}
#include <stdio.h>
void main()
{
int i,j,m;/*i为课程号,0为语文,1为数学,2为英语,3为物理,4为化学,j为学号,从0到29*/
float s[5][30];
for(i=0;i<5;i++)
for(j=0;j<30;j++)
{switch(i)
{
case 0:Please input Chinese achievement;break;
case 1:printf("Please input mathematics achievement\n");break;
case 2:printf("Please input English achievement\n");break;
case 3:printf("Please input physics achievement\n");break;
case 4:printf("Please input chemistry achievement\n");break;
default:printf("\n");
}
while(1)
{printf("Please input the project serial number that you want to operate\n");
scanf("%d",&m);
switch(m)
{
case 0:Course(s);break;
case 1:Student(s);break;
case 2:Mark(s);break;
case 3:Fail(s);break;
case 4:Sequencing(s);break;
default:printf("Input the mistake, please input again\n");
}
}
}

#include <stdio.h>

#define STU 30
#define COURSE 3

void Input(long num[],int score[][COURSE],int n);
void GetSumAver(int score[][COURSE],int n,int sum[],float aver[]);
void Sort(long num[],int score[][COURSE],int n,int sum[],float aver[]);
void Print(long num[],int score[][COURSE],int n,int sum[],float aver[]);
int Search(long num[],int n,long x);

main()
{
int n,score[STU][COURSE],sum[STU],pos;
long num[STU],x;
float aver[STU];

printf("Please enter the total number of the students(n<=30):");
scanf("%d",&n);

printf("Enter No. and score as:MT EN PH\n");
Input(num,score,n);

GetSumAver(score,n,sum,aver);
printf("Before sort:\n");
Print(num,score,n,sum,aver);

Sort(num,score,n,sum,aver);
printf("After sort:\n");
Print(num,score,n,sum,aver);

printf("Please enter searching number:");
scanf("%ld",&x);
pos=Search(num,n,x);
if(pos!=-1)
{
printf("position:\t No \t MT \t EN \t PH \t SUM \t AVER\n");
printf("%8d\t%4ld\t%4d\t%4d\t%4d\t%5d\t%5.0f\n",
pos+1,num[pos],score[pos][0],score[pos][1],
score[pos][2],sum[pos],aver[pos]);
}
else
{
printf("Not found!\n");
}
}

void Input(long num[],int score[][COURSE],int n)
{
int i,j;

for(i=0;i<n;i++)
{
scanf("%ld",&num[i]);
for(j=0;j<COURSE;j++)
{
scanf("%d",&score[i][j]);
}
}
}

void GetSumAver(int score[][COURSE],int n,int sum[],float aver[])
{
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;
}
}

void Sort(long num[],int score[][COURSE],int n,int sum[],float aver[])
{
int i,j,k,m;
int temp1;
long temp2;
float temp3;

for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
{
if(sum[j]>sum[k]) k=j;
}
if(k!=i)
{
temp1=sum[k];sum[k]=sum[i];sum[i]=temp1;
temp2=num[k];num[k]=num[i];num[i]=temp2;
temp3=aver[k];aver[k]=aver[i];aver[i]=temp3;
for(m=0;m<COURSE;m++)
{
temp1=score[k][m];
score[k][m]=score[i][m];
score[i][m]=temp1;
}
}
}
}

void Print(long num[],int score[][COURSE],int n,int sum[],float aver[])
{
int i,j;

printf(" NO \t| MT \t EN \t PH \t SUM \t AVER\n");
printf("-----------------------------------------------\n");
for(i=0;i<n;i++)
{
printf("%ld\t|",num[i]);
for(j=0;j<COURSE;j++)
{
printf("%4d\t",score[i][j]);
}
printf("%5d\t%5.0f\n",sum[i],aver[i]);
}
}

int Search(long num[],int n,long x)
{
int i;

for(i=0;i<n;i++)
{
if(num[i]==x) return(i);
}
return(-1);
}

晕了,以后有作业我也百度知道,新浪爱问
嘿嘿

是的,就这样做,但你的检验一下,的调试一下