struct?student
{
char?szName[100];
int?score;//?成績
//?等號重載
student?operator=(student?&st)
{
sprintf(szName,?st.szName);
score?=?st.score;?
return?*this;
}
};
int?main()
{
const?int?stuCount?=?10;
student?stuArray[stuCount];
for?(int?i?=?0;?i?<?stuCount;?i++)
{
printf("請輸入第%d個學生的姓名?成績\n",?(i?+?1));
scanf("%s?%d",?
stuArray[i].szName,?
&stuArray[i].score);
}
//?排序
for?(int?i?=?0;?i?<?stuCount;?i++)
{
for?(int?j?=?0;?j?<?stuCount?-?i?-1;?j++)
{
if?(stuArray[j?+?1].score?>?stuArray[j].score)
{
student?stu?=?stuArray[j];
stuArray[j]?=?stuArray[j?+?1];
stuArray[j?+?1]?=?stu;
}
}
}
//?打印
printf("名次\t姓名\t成績\n");
for?(int?i?=?0?;?i?<?stuCount;?i?++)
{
printf("%d\t%s\t%d\n",?(i+1),?stuArray[i].szName,?stuArray[i].score);
}
return?0;
}
運行結果如下: