当前位置:编程学习 > C/C++ >>

简单的C++问题

输入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 <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++程序 求解释

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,