从键盘输入10个学生的姓名和成绩,请按字典序排列学生的姓名并输出(姓名和成绩对应关系保持不变)。
输入共11行,前10行每行是一个学生的姓名,最后一行是10个用空格分开的整数表示对应的10个学生成绩。
Bush White Mark Jean Black Wood Jenny Frank Bill Smith 78 85 96 65 46 83 77 88 54 98
Bill,54 Black,46 Bush,78 Frank,88 Jean,65 Jenny,77 Mark,96 Smith,98 White,85 Wood,83
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
struct node
{
char name[10];
int grade;
} student[10], t;
int main()
{
int i, j;
for(i=0; i<10; i++)
{
cin >> student[i].name;
}
for(i=0; i<10; i++)
{
cin >> student[i].grade;
}
for(i=0; i<9; i++)
for(j=0; j<9-i; j++)
{
if(strcmp(student[j].name,student[j+1].name)>0)
{
t = student[j];
student[j] = student[j+1];
student[j+1] = t;
}
}
for(i = 0 ; i < 10 ; i++)
cout << student[i].name<<","<<student[i].grade<<endl;
return 0;
}
原文:http://blog.csdn.net/u013634961/article/details/41545635