上机目的:学数组
上机内容:学习
/*
* Copyright (c) 2012, 烟台大学计算机学院
* All rights reserved.
* 作 者:刘杰
* 完成日期:2012 年12 月9 日
* 版 本 号:v1.0
* 输入描述:无
* 问题描述:输出姓名和成绩
* 程序输出:无
* 问题分析:无
* 算法设计:略
*/
#include<iostream>
#include<string>
using namespace std;
int n ; string name[6];
double score[6];
void pxscore(); //按分数排序
void pxname(); //按姓名排序
int main() {
int i;
cout<<"请输入人数: ";
cin>>n;
for(i=1;i<=n;++i) {
cout<<"请输入第"<<i<<"位同学的名字:";
cin>>name[i];
cout<<"请输入第"<<i<<"位同学的成绩:";
cin>>score[i];
}
cout<<"按成绩排名:"<<endl;
pxscore();
for(i=1;i<=n;++i) {
cout<<"第"<<i<<"名:"<<name[i]<<" "<<score[i]<<endl;
}
cout<<endl<<"按姓名排名:"<<endl;
pxname();
for(i=1;i<=n;++i) {
cout<<name[i]<<" "<<score[i]<<endl;
}
return 0;
}
void pxscore() {
int j,i,t;
string k;
for(j=1;j<n;++j) {
for(i=1;i<=n-j;++i) {
if(score[i]<score[i+1])
{
t=score[i];
score[i]=score[i+1];
score[i+1]=t;
k=name[i];
name[i]=name[i+1];
name[i+1]=k;
}
}
}
return;
}
void pxname() {
int j,i,t;
string k;
for(j=1;j<n;++j) {
for(i=1;i<=n-j;++i) {
if(name[i]<name[i+1]) {
k=name[i];
name[i]=name[i+1];
name[i+1]=k;
t=score[i];
score[i]=score[i+1];
score[i+1]=t;
}
}
} return;
}
结果: