根据数学排序,看看是否符合要求
#include<stdio.h>
typedef struct
{
int no;
int math;
int yw;
}xscj;
void insertsortbymath(xscj a[],int n)
{
for(int j=0;j<n;j++)
{
for(int i=0;i<n-j-1;i++)
{
if(a[i].math<a[i+1].math)
{
xscj t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
}
}
}
int main()
{
xscj j4[5]={{1,66,78},{2,76,83},{3,79,63},{4,69,91},{5,71,88}};
for(int j=0;j<5;j++)
{
printf("%d %d %d\n",j4[j].no,j4[j].yw,j4[j].math);
}
insertsortbymath(j4,5);
for(int j=0;j<5;j++)
{
printf("%d %d %d\n",j4[j].no,j4[j].yw,j4[j].math);
}
return 0;
}
主函数main里面没有定义yw这个变量,加上int yw=0;
调用的两个函数后面都没有加上分号**;** 所以字符都必须是英文符号,即在insertsort(yw,n); 和 insetsort(math,n);
还有就是你这个函数** void insertsort(),实际没有一点作用,不太懂你想表达什么
我看你的功能大概是输入学生的成绩跟学号,这没必要用到结构体,直接在main**里定义所有变量就行了