尝试把
~~~cpp
void paiming(int *a,int (*p)[3],int n,string *q);
~~~
改到main函数前面。
by Robots75 @ 2023-09-20 17:26:27
@[csuzhang](/user/906837)
by Robots75 @ 2023-09-20 17:40:45
不提前声明的吗
by x_UwT @ 2023-09-20 18:08:17
这样吗?这样是20分,我同学说似乎是出错在名字上
```cpp
#include<iostream>
#include<string>
using namespace std;
void paiming(int *a,int (*p)[3],int n,string *q)
{
string mark=q[0];
int b[3];
b[0]=p[0][0];
b[1]=p[0][1];
b[2]=p[0][2];
for(int i=0;i<n-1;i++){
for(int j=0;j<n-i-1;j++){
if(a[j]<a[j+1]){
mark=q[j+1];
q[j]=q[j+1];
q[j+1]=mark;
b[0]=p[j+1][0];
p[j][0]=p[j+1][0];
p[j+1][0]=b[0];
b[1]=p[j+1][1];
p[j][1]=p[j+1][1];
p[j+1][1]=b[1];
b[2]=p[j+1][2];
p[j][2]=p[j+1][2];
p[j+1][2]=b[2];
}
}
}
b[0]=p[0][0];
b[1]=p[0][1];
b[2]=p[0][2];
mark=q[0];
cout<<mark<<" "<<b[0]<<" "<<b[1]<<" "<<b[2]<<endl;
}
int main()
{
int n;
while(cin>>n){
string name[n];
int grade[n][3];
int sum[n];
for(int i=0;i<n;i++){
cin>>name[i];
cin>>grade[i][0]>>grade[i][1]>>grade[i][2];
sum[i]=grade[i][0]+grade[i][1]+grade[i][2];
}
// cout<<name[0];
void paiming(int *a,int (*p)[3],int n,string *q);
paiming(sum,grade,n,name);
}
}
```
by csuzhang @ 2023-09-20 21:36:05