第1个回答 2008-05-16
#include <iostream.h>
void readscore(float score[][6],long num[],int n)
{
int i,j;
float sum1=0;
for(i=1;i<=n;i++)
{
cout<<"请输入学号:"<<endl;cin>>num[i];
cout<<"请输入数学成绩:"<<endl;cin>>score[i][1];
cout<<"请输入英语成绩:"<<endl;cin>>score[i][2];
cout<<"请输入物理成绩:"<<endl;cin>>score[i][3];
}
for(i=1;i<=n;i++)
{
for(j=1;j<4;j++)
{
sum1=sum1+score[i][j];
}
score[i][4]=sum1;
score[i][5]=sum1/3;
sum1=0;
}
}
void pai(int n,long num[],float score[][6])
{
int i,j,b;
float p;
long k;
for(j=1;j<=n;j++)
{
for(i=1;i<=n-j;i++)
{
if(score[i][4]<score[i+1][4])
{
for(b=1;b<6;b++)
{
p=score[i][b];
score[i][b]=score[i+1][b];
score[i+1][b]=p;
}
k=num[i];
num[i]=num[i+1];
num[i+1]=k;
}
}
}
}
void printf(float score[][6],long num[],int n)
{
int i;
cout<<"学号"<<"\t"<<"数学"<<"\t"<<"英语"<<"\t"<<"物理"<<"\t"<<"总分"<<"\t"<<"平均分"<<endl;
for (i=1;i<=n;i++)
{
cout<<num[i]<<"\t"<<score[i][1]<<"\t"<<score[i][2]<<"\t"<<score[i][3]<<"\t"<<score[i][4]<<"\t"<<score[i][5]<<endl;
}
}
void search(float score[][6],long num[],int n)
{
int i,j;
cout<<"请输入一个学号"<<endl;cin>>j;
for(i=1;i<=n;i++)
{
if(j==num[i])
{
cout<<"名次"<<"\t"<<"学号"<<"\t"<<"数学"<<"\t"<<"英语"<<"\t"<<"物理"<<"\t"<<"总分"<<"\t"<<"平均分"<<endl;
cout<<i<<"\t"<<num[i]<<"\t"<<score[i][1]<<"\t"<<score[i][2]<<"\t"<<score[i][3]<<"\t"<<score[i][4]<<"\t"<<score[i][5]<<endl;
}
}
}
void main()
{
const max=30;
int n,i,j;
float score[max][6];
long num[max];
char goon,y;
do
{
cout<<"请输入全班人数"<<endl;cin>>n;
readscore(score,num,n);
do
{
cout<<"请输入你的选择:"<<endl;
cout<<"进行排名统计(但不输出):1"<<endl;
cout<<"进行打印学生成绩:2"<<endl;
cout<<"搜索某位同学:3"<<endl;
cin>>i;
switch (i)
{
case 1 :pai(n,num,score); break;
case 2 :printf(score,num,n); break;
case 3 :search(score,num,n); break;
}
cout<<"如果你还要进行其他运算请按:y"<<endl;
cin>>goon;
}while(goon=='y');
cout<<"是否进行另一个班的成绩:1"<<endl;cin>>j;
}while(j==1);
}
我觉得还算可以,呵呵本回答被提问者采纳