第十六周任务:带姓名的成绩单(字符数组版)

本文详细介绍了如何使用C++对一组学生成绩进行姓名和成绩的排序,并输出排序后的成绩单。
  1. /*                    
  2. * Copyright (c) 2012, 烟台大学计算机学院                    
  3. * All rights reserved.                    
  4. * 文件名称:test.cpp                    
  5. * 作者:尹成真                   
  6. * 完成日期:2012 年12月16日                    
  7. * 版本号:v1.0                    
  8. *                    
  9. * 输入描述:无                    
  10. * 问题描述:定义数组,给定成绩                  
  11. * 程序输出:按姓名和按成绩排序的成绩单         
  12. * 问题分析:无                   
  13. * 算法设计:略                    
  14. */           
  15.   
    #include<iostream>      
    #include<string>      
    using namespace std;    
    const int num=6;     
    int main()    
    {    
        int i,j,c;    
        char temp[20];    
        char name[num][20]={"wang","yin","sui","li","zhuang","sun"};    
        double score[num]={80,84,91,99,69,92};    
        for(i=0;i<num-1;i++)//按姓名排序      
        {    
            for(j=0;j<num-i-1;j++)    
            {    
                if(strcmp(name[j],name[j+1])>0)    
                {    
                    strcpy(temp,name[j+1]);    
                    strcpy(name[j+1],name[j]);    
                    strcpy(name[j],temp);    
                    c=score[j+1];    
                    score[j+1]=score[j];    
                    score[j]=c;    
                }    
            }    
        }    
        cout<<"按姓名排序的成绩单如下:"<<endl;    
        for(j=0;j<num;j++)    
            cout<<name[j]<<'\t'<<score[j]<<endl;    
                for(i=0;i<num-1;i++)//按成绩排序      
            {    
                for(j=0;j<num-i-1;j++)    
                {    
                    if(score[j]<score[j+1])    
                    {    
                        c=score[j+1];    
                        score[j+1]=score[j];    
                        score[j]=c;    
                        strcpy(temp,name[j+1]);    
                        strcpy(name[j+1],name[j]);    
                        strcpy(name[j],temp);    
                    }    
                }    
            }    
            cout<<"按成绩排序的成绩单如下:"<<endl;    
            for(j=0;j<num;j++)    
                cout<<name[j]<<'\t'<<score[j]<<endl;    
            return 0;    
    }    
    
    /*                   
    * Copyright (c) 2012, 烟台大学计算机学院                   
    * All rights reserved.                   
    * 文件名称:test.cpp                   
    * 作者:李慧慧                  
    * 完成日期:2012 年12月15日                   
    * 版本号:v1.0                   
    *                   
    * 输入描述:无                   
    * 问题描述:定义数组,给定成绩                 
    * 程序输出:按姓名和按成绩排序的成绩单        
    * 问题分析:无                  
    * 算法设计:略                   
    */         
    
    #include<iostream>   
    #include<string>   
    using namespace std;  
    const int num=6;   
    int main()  
    {  
        int i,j,c;  
        char temp[20];  
        char name[num][20]={"wang","yin","sui","li","zhuang","sun"};  
        double score[num]={80,84,91,99,69,92};  
        for(i=0;i<num-1;i++)//按姓名排序   
        {  
            for(j=0;j<num-i-1;j++)  
            {  
                if(strcmp(name[j],name[j+1])>0)  
                {  
                    strcpy(temp,name[j+1]);  
                    strcpy(name[j+1],name[j]);  
                    strcpy(name[j],temp);  
                    c=score[j+1];  
                    score[j+1]=score[j];  
                    score[j]=c;  
                }  
            }  
        }  
        cout<<"按姓名排序的成绩单如下:"<<endl;  
        for(j=0;j<num;j++)  
            cout<<name[j]<<'\t'<<score[j]<<endl;  
    	        for(i=0;i<num-1;i++)//按成绩排序   
            {  
                for(j=0;j<num-i-1;j++)  
                {  
                    if(score[j]<score[j+1])  
                    {  
                        c=score[j+1];  
                        score[j+1]=score[j];  
                        score[j]=c;  
                        strcpy(temp,name[j+1]);  
                        strcpy(name[j+1],name[j]);  
                        strcpy(name[j],temp);  
                    }  
                }  
            }  
            cout<<"按成绩排序的成绩单如下:"<<endl;  
            for(j=0;j<num;j++)  
                cout<<name[j]<<'\t'<<score[j]<<endl;  
            return 0;  
    }  
    
    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值