用二维数组,不太好,用结构体吧,然后用一维数组就可以了。
#include
#include
struct student
{
char szName[100];
char szNo[100];
int score; // 成绩
// 等号重载
student operator=(student &st)
{
sprintf(szName, st.szName);
sprintf(szNo, st.szNo);
score = st.score;
return *this;
}
// 输出学生信息以及分数
void printfStu()
{
printf("%s\t%s\t%d\n", szName, szNo, score);
}
};
int main()
{
int stuCount = 0;
student stuArray[100];
printf("请输入学生个数\n");
scanf("%d", &stuCount);
printf("姓名\t学号\t成绩\n");
for (int i = 0; i < stuCount; i++)
{
scanf("%s %s %d",
stuArray[i].szName,
&stuArray[i].szNo,
&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 ++)
{
stuArray[i].printfStu();
}
return 0;
}
在printf("%d\n",c);后面再加一条语句:
getch();
原因:不加getch();程序直接运行完了,你啥也没有看到,
加了后,程序等待你再输入一个字符才结束.