c++大神_这段C++代码错在哪里 求大神指教
#include <iostream>
#include<string>
using namespace std;
struct student
{
string name;
string ID;
int Yingyu,Gaoshu,Gaocheng,Dawu,Daolun;
double sum;
}person[33],*a,*b,t;
void sort( student *b, int n)
{
int m,i,j;
for(i=0;i<n-1;i++)
{
m=i;
for(j=i+1;j<n;j++)
{
if(person[i].sum <person[j].sum)
{
m=j;
}
}
if(m!=i)
{
t=person[j];
person[j]=person[j+1];
person[j+1]=t;
}
}
}
void sum(student *a, int n)
{
student *b;
for(int i=0;i<n;i++)
{
person[i].sum=person[i].Yingyu+person[i].Gaoshu+person[i].Gaocheng+person[i].Dawu+person[i].Daolun;
}
}
int main()
{
int i,n;
cout<<"请依次输入学生:姓名、学号、及英语、高数、高程、大物、导论成绩"<<endl;
for(n=0;n<33;n++)
{
cin>>person[n].name>>person[n].ID>>person[n].Yingyu>>person[n].Gaoshu>>person[n].Gaocheng
>>person[n].Dawu>>person[n].Daolun;
if(person[n].name=="##")
break;
}
a=person;
sum(a,n);
b=person;
sort(b,n);
cout<<"成绩按总分降序排列:"<<endl;
cout<<"姓名"<<" "<<"学号"<<" "<<"英语"<<" "<<"高数"<<" "<<"高程"<<" "<<"大物"<<
" "<<"导论"<<" "<<"总分"<<" "<<endl;
for( i=0;i<n;i++)
{cout<<person[i].name<<" "<<person[i].ID<<" "<<person[i].Yingyu<<" "
<<person[i].Gaoshu<<" "<<person[i].Gaocheng<<" "<<person[i].Dawu<<" "<<
person[i].Daolun<<" "<<person[i].sum<<endl;}
return 0;
}
最佳答案
程序语法上没有问题,但结构设计上很有问题
你既然定义了 person[33], *a, *b, t;都是全局变量,就不用参数了
如你的void sort(student *b, int n)你的student *b的定义毫无意义了
程序可以运行,具体的错要看你的要求了
其他回答
暂无其它回答!