输成姓名成绩

上机内容:学习字符数组

上级目的:学习与练习

/*
* 程序的版权和版本声明部分
* Copyright (c)2012, 烟台大学计算机学院学生
* All rightsreserved.
* 文件名称: 1.cpp
* 作    者:刘杰
* 完成日期: 2012 年12 月15 日
* 版本号: v1.0
*
* 输入描述:设score数组中存储同学们的C++ 

成绩,增加一个数组char name[][20]并赋初值,表示同学们的姓名(注意:本周不使用更方便 

的string类)。这两个数组中,同学的姓名与成绩的下标保持一致(例如name[1]和score[1] 

表示同一位同学的姓名和C++成绩)。请(1)输出按成绩排序后的同学的名单;(2)输出按同学 

姓名排序后的成绩单(排序对象是字符串)。
* 问题描述:比较大小,排序
*/
#include<iostream> 
using namespace std; 
void scorepx();
void namepx();
const num=5;
char name[num][20]={"Lily","Arry","Silly","Coo","Mike"};
char temp[20];
double score[num]={75,85,95,88,89};
int main() 
{  
	int i;
	cout<<"按成绩输出:"<<endl;
	scorepx();
	for(i=0;i<num;i++){
		cout<<name[i]<<'\t'<<score[i]<<endl;
	}
	
				cout<<"按姓名输出:"<<endl;
				for(i=0;i<num;i++){
					cout<<name[i]<<'\t'<<score[i]<<endl;
					
				}
				return 0; 
}
void scorepx(){
	
	int i=0,j=0,t=0;
    for(j=0;j<num-1;j++)
		for(i=0;i<=num-j;i++)
			if(score[i]<score[i+1]){
				t=score[i];
				score[i]=score[i+1];
				score[i+1]=t;
				strcpy(temp,name[i]);  
                strcpy(name[i],name[i+1]);  
                strcpy(name[i+1],temp);  
				
			}
			return;
}
void namepx(){
	int i,j,t;
	
	for(j=0;j<num-1;j++)
		for(i=0;i<=num-j;j++){
			if(strcmp(name[i],name[i+1])>0){
				strcpy(temp,name[i]);  
				strcpy(name[i],name[i+1]);  
				strcpy(name[i+1],temp);
				t=score[i];
				score[i]=score[i+1];
				score[i+1]=t;  
			}	
		}
		return;
}


运行结果:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值