/*
* Copyright (c) 2012, 烟台大学计算机学院
* All rights reserved.
* 作 者:张浩
* 完成日期:2012 年12月08日
* 版 本 号:v1.0
* 输入描述: 略
* 问题描述:略
* 程序输出:略
* 问题分析: 略
* 算法设计:
*/
#include <iostream>
#include<string>
using namespace std;
const int n=7;
void input_data(string name[n],double score[n]);
void pai_score(string name[n],double score[n]);
void pai_name(string name[n],double score[n]);
int main()
{
string name[7];double score[7];
int n;
cout<<"请输入学生人数:";
cin>>n;
cout<<"请输入每个同学的名字和分数:\n";
input_data(name,score);
cout<<"按成绩排列成绩单如下:\n";
pai_score(name,score);
cout<<"按名字排列成绩单如下:\n";
pai_name(name,score);
return 0;
}
void input_data(string name[n],double score[n]){
int i;
for(i=0;i<n;i++){
cout<<"第"<<i+1<<"位同学的名字:";
cin>>name[i];
cout<<"第"<<i+1<<"位同学的成绩:";
cin>>score[i];
}
return;
}
void pai_score(string name[n],double score[n]){
int i,j;
double x;
string y;
for(j=0;j<6;j++)
for(i=0;i<6-j;i++){
if(score[i]<score[i+1]){
x=score[i];score[i]=score[i+1];
score[i+1]=x;
y=name[i];name[i]=name[i+1];
name[i+1]=y;
}
}
for(i=0;i<n;i++){
cout<<"第"<<i+1<<"名:"<<name[i]<<'\t'<<score[i]<<"分\n";
}
return;
}
void pai_name(string name[n],double score[n]){
int i,j;
double x;
string y;
for(i=0;i<6;i++)
for(j=0;j<6-i;i++){
if(name[j]<name[j+1]){
x=score[j];score[j]=score[j+1];
score[j+1]=x;
y=name[j];name[j]=name[j+1];
name[j+1]=y;
}
}
for(i=0;i<n;i++){
cout<<"第"<<i+1<<"名:"<<name[i]<<'\t'<<score[i]<<"分\n";
}
return;
}
运行结果:
心得体会:都想自己考高分,我也不例外。。。。。。。