输入5个学生的姓名和成绩,并按照成绩的从高到低输出。请用指针改写下列程序。
时间: 2023-02-25 13:01:52 浏览: 57
以下是使用指针改写的程序:
```
#include <iostream>
#include <cstring>
using namespace std;
struct student {
char name[20];
int score;
};
int main() {
student s[5];
student *p;
student temp;
// 输入学生姓名和成绩
for (int i = 0; i < 5; i++) {
cout << "请输入第" << i + 1 << "个学生的姓名:";
cin >> s[i].name;
cout << "请输入第" << i + 1 << "个学生的成绩:";
cin >> s[i].score;
}
// 按照成绩从高到低排序
for (int i = 0; i < 4; i++) {
for (int j = i + 1; j < 5; j++) {
p = &s[i];
if (p->score < s[j].score) {
temp = *p;
*p = s[j];
s[j] = temp;
}
}
}
// 输出学生姓名和成绩
cout << "排序后的学生成绩:" << endl;
for (int i = 0; i < 5; i++) {
cout << s[i].name << " " << s[i].score << endl;
}
return 0;
}
```