简单的C++问题
输入N个学生的姓名、学号、英语成绩,按英语成绩的降序排序输出。
输入N个学生的姓名、学号、英语成绩,按英语成绩的降序排序输出。
答案:#include <iostream>
#include <string>
using namespace std;
const int n = 3;
class STU{
public:
string name;
string num;
int score;
STU(){};
STU(STU& s){name = s.name; num = s.num; score = s.score; }
friend inline ostream& operator<<(ostream& o, const STU& s){
return o << "Name=" << s.name << "\tNumber=" << s.num << "\tScore=" << s.score << endl;
}
};
int main(){
STU s[n];
STU temp;
int i, j;
for (i=0; i<n; i++){
cout << "Name? ";
cin >> s[i].name;
cout << "Number? ";
cin >> s[i].num;
cout << "Score? ";
cin >> s[i].score;
}
for (i=0; i<n; i++)
for (j=i+1; j<n; j++)
{
if (s[i].score<s[j].score)
{
temp = s[i];
s[i] = s[j];
s[j] = temp;
}
}
for (i=0; i<n; i++){
cout << s[i];
}
}#include <stdio.h>
#include <string.h>
#defineSIZE50
typedef struct INFO
{
charname[21];
charid[11];
intenglish;
} INFO;
INFOinfo[SIZE];
int main(int argc, char* argv[])
{
inti, j, len = 0;
charname[21];
INFOt;
while(1)
{
printf("请输入第%d个学生的姓名,输入0退出输入:", len+1);
scanf("%s", name);
if (strcmp(name, "0") == 0) break;
strcpy(info[len].name, name);
printf("请输入第%d个学生的学号:", len+1);
scanf("%s", info[len].id);
printf("请输入第%d个学生的成绩:", len+1);
scanf("%d", &info[len].english);
len++;
}
for (i = 0; i < len; i++)
{
for (j = i; j < len; j++)
{
if (info[i].english < info[j].english)
{
t = info[i];
info[i] = info[j];
info[j] = t;
}
}
}
printf("\n姓名 学号 成绩\n");
for (i = 0; i < len; i++)
{
printf("%s %s %d\n", info[i].name, info[i].id, info[i].english);
}
return 0;
}这个程序简单 自己想吧
设计一个结构数组来存储相关数据 然后在对数组结构中相应的成绩进行比较 然后输出
自己做出来的才更有意思兄弟,你可以尝试用下STL,排序可以选择LIST , MAP等类型操作起来很方便,就算在工作中也是用的比较频繁的
上一个:VB和C++哪个适合初学者学习?
下一个:C++程序 求解释