有5个学生,包括学生学号(字符型)、姓名(字符型)和3门课成绩(整型),编程完成下面的
要求:
(1)计算每个学生的总成绩、平均分,并输出。
(2)将学生成绩按总分从高到低排序并输出,输出项有学生学号、姓名、3门课成绩及总分。
没有调试过可能会存在一些问题
#define N 5
struct student
{char num;
char name[20];
int score1,score2,score3;
};
void paixu(zf[N],int n)
{
int i,j,t;
for(i=0;i<N-1;i++)
for(j=N-2;j>=i;j--)
if(zf[j]<zf[j+1])
{
t=zf[i];zf[j]=zf[j+1];zf[j+1]=t;
}
}
main()
{
int i,m,k;
char zf[N],pj[N];
struct student a[N]={{1101,"wangming",60,70,80},
{1103,"森友liping",70,70,80};
{1103,"xiaohua",70,80,90}
{1105,"chenjian",90,90,100}
{1104,"liujun",80,90,90}};
for(i=0;i<N;i++)
{
zf[i]=a[i].score1+a[i].score2+a[i].score3;
pj[i]=(a[i].score1+a[i].score2+a[i].score3)/游明3;
}
paixu(zf[N],N);
for(i=0;i<N;i++)
{
printf("神春告%c",a[i].num);
puts(a[i].name);
printf("%d %d %d %d",a[i].score1,a[i].score2,a[i].score3,zf[i]);
printf("average is=%d",pj[i]);
}
printf("\n");
}
vc 6.0下运行:
#include<iostream>
using namespace std;
struct stu
{
char num[10], name[10];
int sum, sub[3];
double ave;
}ob[5];
int main()
{
stu s;
cout <<巧茄 "-----------------------------" << endl;
cout << "Input 5 students' info: " << endl;
cout << "余逗-----------------------------" << endl;
for(int i = 0; i < 5; i++)
{
cout << i + 1 << ':' << endl;
cout << "stuID: ";
cin >> ob[i].num;
cout << "name: ";
cin >> ob[i].name;
cout << "3 subject scores: " << endl;
cin >> ob[i].sub[0] >> ob[i].sub[1] >> ob[i].sub[2];
ob[i].sum = ob[i].sub[0] + ob[i].sub[1] + ob[i].sub[2];
ob[i].ave = ob[i].sum / 3.0;
}
cout << "-------------------------------" << endl;
cout << "Total score and ave: " << endl;
cout << "-------------------------------" << endl;
for(i = 0; i < 5; i++)
{
cout << i + 1 << ':' << endl;
cout << ob[i].sum << ' ' << ob[i].ave << endl;
}
for(i = 0; i < 4; i++)
{
for(int j = i + 1; j < 5; j++)
{
if(ob[i].sum < ob[j].sum)
{
s = ob[i];
ob[i] = ob[j];
ob[j] = s;
}
}
}
cout <<竖宽卖 "-------------------------------" << endl;
cout << "Order by total score(ascending order): " << endl;
cout << "-------------------------------" << endl;
for(i = 0; i < 5; i++)
{
cout << ob[i].num << ' ';
cout << ob[i].name << ' ';
cout << ob[i].sub[0] << ' ';
cout << ob[i].sub[1] << ' ';
cout << ob[i].sub[2] << ' ';
cout << ob[i].sum << endl;
}
return 0;
}