c++大神_这段C++代码错在哪里 求大神指教

原问题:这段C++代码错在哪里 求大神指教
分类:编程开发 > 最后更新时间:【2017-02-03 00:46:36】
问题补充:

#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的定义毫无意义了

程序可以运行,具体的错要看你的要求了

最佳答案由网友  whoami1978  提供
公告: 为响应国家净网行动,部分内容已经删除,感谢网友理解。
17

分享到:

其他回答

暂无其它回答!