| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3644 人关注过本帖
标题:学生成绩排序
只看楼主 加入收藏
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
结帖率:94.74%
收藏
 问题点数:0 回复次数:4 
学生成绩排序
程序代码:
/*
自己写的一个不成样子的东西,还望大家不要见笑。
*/

#include<stdio.h>
#define N 40
#define CLEAR { char c; while( ( c=getchar() ) != '\n' && c != EOF ) ; }
char caidan[]={"*********************************************************\n"};
int xuanzhe()
{
        int x;
        do
        {
                system("cls");
                printf("%s\n",caidan);
                printf("    您好,这是个成绩管理系统,它可以帮您整理出\n"
                       "您的学生成绩,您可以有四种选择:\n"
                       "    1.成绩从大到小排序,打印最高的学习成绩和学号;\n"
                       "    2.成绩从小到大排序,打印最低的学习成绩和学号;\n"
                       "    3.从低到高排序学号;\n"
                       "    4.从高到低排序学号;\n"
                       "    5.退出。\n\n%s\n",caidan);
                printf("请输入您的选择:");
                scanf(" %d",&x);
                CLEAR;
                if(x<1||x>5)
                {
                        system("cls");
                        printf("您的输入有误,请重新输入\n");
                        sleep(1);
                 }
         }
         while(x<1||x>5);
         if(x==5)
                 exit(0);
         system("cls");
         return x;
}
void shuru(float *chengji,int *xuehao,int n)
{
        int i,j;
        for(i=0;i<n;i++)
        {
                if(i==0)
                        system("cls");
                printf("\n\n\n%s\n\n",caidan);
                printf("请输入第%d个学生的学号:\n",i+1);
                scanf(" %d",xuehao++);
                CLEAR;
                puts(" ");
                printf("请输入该生成绩:\n");
                scanf("%f",chengji++);
                CLEAR;
        }
}
void zuigao(float *chengji,int *xuehao,int n)
{
        int i,j,zh;
        float jh;
        for(i=0;i<n;i++)
                for(j=0;j<n-i-1;j++)
                        if(*(chengji+j)<*(chengji+j+1))
                        {
                                jh=*(chengji+j);
                                *(chengji+j)=*(chengji+j+1);
                                *(chengji+j+1)=jh;
                                zh=*(xuehao+j);
                                *(xuehao+j)=*(xuehao+j+1);
                                *(xuehao+j+1)=zh;
                        }




}
void zuidi(float *chengji,int *xuehao,int n)
{
        int i,j,zh;
        float jh;
        for(i=0;i<n;i++)
                for(j=0;j<n-i-1;j++)
                        if(*(chengji+j)>*(chengji+j+1))
                        {
                                jh=*(chengji+j);
                                *(chengji+j)=*(chengji+j+1);
                                *(chengji+j+1)=jh;
                                zh=*(xuehao+j);
                                *(xuehao+j)=*(xuehao+j+1);
                                *(xuehao+j+1)=jh;
                        }




}
void xuehao_gao(int *xuehao,float *chengji,int n)
{
        int i,j,zh;
        float jh;
        for(i=0;i<n;i++)
                for(j=0;j<n-i-1;j++)
                        if(*(xuehao+j)<*(xuehao+j+1))
                        {
                                zh=*(xuehao+j);
                                *(xuehao+j)=*(xuehao+j+1);
                                *(xuehao+j+1)=zh;
                                jh=*(chengji+j);
                                *(chengji+j)=*(chengji+j+1);
                                *(chengji+j+1)=jh;
                        }
}
void xuehao_di(int *xuehao,float *chengji,int n)
{
        int i,j,zh;
        float jh;
        for(i=0;i<n;i++)
                for(j=0;j<n-i-1;j++)
                        if(*(xuehao+j)>*(xuehao+j+1))
                        {
                                zh=*(xuehao+j);
                                *(xuehao+j)=*(xuehao+j+1);
                                *(xuehao+j+1)=zh;
                                jh=*(chengji+j);
                                *(chengji+j)=*(chengji+j+1);
                                *(chengji+j+1)=jh;
                        }
}
int main(void)
{
        float chengji[N];
        int xuehao[N],n,i,j,x;
        while(1)
        {
                x=xuanzhe();
                printf("\n%s\n\n您好,请输入您的学生人数:\n",caidan);
                do
                {
                        scanf(" %d",&n);
                        CLEAR;
                        puts(" ");
                        if(n<1||n>40)
                                printf("对不起,您的输入有误,请重新输入:\n");
                }
                while(n<1||n>40);
                system("cls");
                switch(x)
                {
                        case 1:shuru(chengji,xuehao,n);
                               zuigao(chengji,xuehao,n);
                               printf("\n\n%s\n\n",caidan);
                               system("cls");
                               printf("\n\n\n%s\n",caidan);
                               j=1;
                               for(i=0;i<n;i++,j++)
                               {
                                        printf("   %6d %8.2f   ",xuehao[i],chengji[i]);
                                        if(j%2==0)
                                                puts(" ");
                               }
                               printf("\n%s\n",caidan);
                               printf("最高成绩和学号是:\n%8.2f %6d",chengji[0],xuehao[0]);
                               puts(" ");
                               break;
                        case 2: shuru(chengji,xuehao,n);
                               zuidi(chengji,xuehao,n);
                               printf("\n\n%s\n\n",caidan);
                               system("cls");
                               j=1;
                               for(i=0;i<n;i++,j++)
                               {
                                        printf("   %6d %8.2f   ",xuehao[i],chengji[i]);
                                        if(j%2==0)
                                                puts(" ");
                               }
                               printf("\n%s\n",caidan);
                               printf("最低成绩和学号是:\n%8.2f  %6d",chengji[0],xuehao[0]);
                               puts(" ");
                               break;
                        case 3: shuru(chengji,xuehao,n);
                               xuehao_gao(&xuehao,&chengji,n);
                               system("cls");
                               printf("\n%s\n\n",caidan);
                               j=1;
                               for(i=0;i<n;i++,j++)
                               {
                                        printf("   学号:%6d成绩:%8.2f  ",xuehao[i],chengji[i]);
                                        if(j%2==0)
                                                puts(" ");
                               }
                               puts(" ");
                               break;
                        case 4: shuru(chengji,xuehao,n);
                               xuehao_di(&xuehao,&chengji,n);
                               system("cls");
                               printf("\n%s\n\n",caidan);
                               j=1;
                               for(i=0;i<n;i++,j++)
                               {
                                       printf("  学号:%6d 成绩:%8.2f  ",xuehao[i],chengji[i]);
                                       if(j%2==0)
                                                puts(" ");
                               }
                               puts(" ");
                }
                printf("请按任意键:\n");
                getch();
        }



        getch();
}












搜索更多相关主题的帖子: 学生成绩 int caidan char 
2008-03-28 22:48
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
可以用结构体做

学习需要安静。。海盗要重新来过。。
2008-03-28 23:16
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
收藏
得分:0 
回复 2# 的帖子
谢谢,自学的进度太慢,质量也不敢保证,只能先把这些练熟了再研究结构体。

以后还请多多指教。
2008-03-28 23:18
bianfeng
Rank: 1
等 级:新手上路
帖 子:199
专家分:0
注 册:2007-11-28
收藏
得分:0 
不错...
2008-03-29 00:33
lddwh
Rank: 2
等 级:论坛游民
帖 子:34
专家分:79
注 册:2010-4-7
收藏
得分:0 
en
2010-04-14 20:34
快速回复:学生成绩排序
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.043642 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved