问题及代码:
/*
* Copyright (c) 2014, 烟台大学计算机学院
* All rights reserved.
* 文件名称:test.cpp
* 作 者:夏焕哲
* 完成日期:2014 年 11 月 26 日
* 版 本 号:v1.0
*
* 问题描述:折腾二维数组。
* 输入描述: 建立一个二维数组,先赋值前十个,在敲入剩下的10个。
* 程序输出: 如图所示。
*/
#include <iostream>
#include <cstring>
using namespace std;
const int num=8;
int main()
{
int i,j,t;
char temp[20];
char name[num][8]= {"zhao","qian","sun","li","zhou","wu","zheng","wang"};
double score[num]= {79,84,65,89,60,92,78,56};
cout<<"按成绩排序:"<<endl;
for(i=0; i<=num; i++)
{
for(j=0; j<num-i-1; j++)
if(score[j+1]>score[j])
{
t=score[j];
score[j]=score[j+1];
score[j+1]=t;
strcpy(temp,name[j]);
strcpy(name[j],name[j+1]);
strcpy(name[j+1],temp);
}
}
for(i=0;i<=num;i++)
{
cout<<name[i]<<" "<<score[i]<<endl;
}//(1)按成绩排序并输出结果
cout<<"按姓名排序后:"<<endl;
for(i=0; i<=num; i++)
{
for(j=0; j<num-i-1; j++)
if(strcmp(name[j+1],name[j])>0)
{
t=score[j];
score[j]=score[j+1];
score[j+1]=t;
strcpy(temp,name[j]);
strcpy(name[j],name[j+1]);
strcpy(name[j+1],temp);
}
}
for(i=0;i<=num;i++)
{
cout<<name[i]<<" "<<score[i]<<endl;
}
//(2)按姓名排序并输出结果
return 0;
}
运行结果: