| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 751 人关注过本帖
标题:不能排序的问题?
只看楼主 加入收藏
魔芋大王
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2008-2-14
收藏
 问题点数:0 回复次数:8 
不能排序的问题?
#include<stdio.h>
#define N 50
struct student
{
    int xuehao;
    char xing[6];
    float a;
    float b;
    float c;
    float p;
}stu[N];
void luru();
void display();
void paixu();
/*void cha();*/
void del();
int m=0;
void main()
{
    
    char ans='y';
    printf("\n请输入学员的信息\n");
    do
    {
        luru();
        printf("是否继续(y or n)\n");
        fflush(stdin);
        ans=getchar();
        
    }while(ans=='y');//输入
    printf("排序前的学员信息如下\n");
    display();
    printf("排序后的学员信息如下\n");
    paixu();
    display();//排序
    
    printf("是否要插入新学员(y or n)");
    while((ans=getchar())=='y')
    {
        printf("\n请输入要插入学员的信息\n");
        luru();
        fflush(stdin);
        printf("是否继续插入新学员(y or n)");
    }
    printf("\n输出新学员后的信息\n");
    paixu();
    display();//插入

    printf("是否要删除某个学员(y or n)\n");
    while((ans=getchar())=='y')
    {
        int n;
        printf("\n请输入要删除学员的学号\n");
        scanf("%d",&n);
        del(n);
        fflush(stdin);
        printf("是否继续删除新学员(y or n)");
    }
    printf("删除后学员信息如下");
    paixu();
    display();//删除
}
void luru()//输入
{
    printf("\n学号\n");
    scanf("%d",&stu[m].xuehao);
    printf("姓名\n");
    fflush(stdin);
    gets(stu[m].xing);
    printf("三门成绩\n");
    printf("成绩1:\n");
    scanf("%f",&stu[m].a);
    printf("成绩2:\n");
    scanf("%f",&stu[m].b);
    printf("成绩3:\n");
    scanf("%f",&stu[m].c);
    stu[m].p=(stu[m].a+stu[m].b+stu[m].c)/3;
    m++;
}
void display()//输出
{
    int i;
    for(i=0;i<m;i++)
    {
        printf("\n学号\t姓名\t平均成绩\n");
        printf("%d\t",stu[i].xuehao);
        printf("%s\t",stu[i].xing);
        printf("%.1f\t",stu[i].p);
    }
    printf("\n");
}
void paixu()//排序
{
    int i,j;
    struct student stu2;
    for(i=0;i<m-1;i++)
    {
        for(j=0;j<m-i-1;j++)
        {    
            if((stu[j].p)<(stu[j+1].p));
            {
                stu2=stu[j];
                stu[j]=stu[j+1];
                stu[j+1]=stu2;
            }
        }
    }

}
/*void cha()//插入
{
    printf("\n学号\n");
    scanf("%d",&stu[k].xuehao);
    printf("姓名\n");
    fflush(stdin);
    gets(stu[k].xing);
    printf("三门成绩\n");
    printf("成绩1:\n");
    scanf("%f",&stu[k].a);
    printf("成绩2:\n");
    scanf("%f",&stu[k].b);
    printf("成绩3:\n");
    scanf("%f",&stu[k].c);
    stu[k].p=(stu[k].a+stu[k].a+stu[k].a)/3;
    k++;
}*/
void del(int n)//删除
{
    int i,j;
    for(i=0;i<m;i++)
    {
        if(n==stu[i].xuehao)
        {
            break;    
        }    
    }
    for(j=i;j<m;j++)
    {
        stu[j]=stu[j+1];
    }
    m--;

}
搜索更多相关主题的帖子: void float ans printf 
2008-04-14 22:19
303770957
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:838
专家分:2125
注 册:2005-9-10
收藏
得分:0 
你的这个帖子也没有说明有什么问题,到底你是想做什么?问题没有说清楚怎么解决?

♂ 死后定当长眠,生前何须久睡。♀
2008-04-14 22:21
魔芋大王
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2008-2-14
收藏
得分:0 
[bo]以下是引用 [un]303770957[/un] 在 2008-4-14 22:21 的发言:[/bo]

你的这个帖子也没有说明有什么问题,到底你是想做什么?问题没有说清楚怎么解决?

输入信息之后不能正确的排序
2008-04-14 22:27
yd4433
Rank: 1
等 级:新手上路
帖 子:404
专家分:0
注 册:2008-3-9
收藏
得分:0 
HOHO wenti  已经解决 灌下水

------...-.-..-...-----........-------.......----.....------....||- - !
2008-04-14 22:37
yd4433
Rank: 1
等 级:新手上路
帖 子:404
专家分:0
注 册:2008-3-9
收藏
得分:0 
作业又不用写了

------...-.-..-...-----........-------.......----.....------....||- - !
2008-04-14 22:38
魔芋大王
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2008-2-14
收藏
得分:0 
晕---
2008-04-14 22:41
yd4433
Rank: 1
等 级:新手上路
帖 子:404
专家分:0
注 册:2008-3-9
收藏
得分:0 
说着玩呢  12点多再写

------...-.-..-...-----........-------.......----.....------....||- - !
2008-04-14 22:46
yd4433
Rank: 1
等 级:新手上路
帖 子:404
专家分:0
注 册:2008-3-9
收藏
得分:0 
来总结下把 排序中这样
 for(i=0;i<m;i++)
    {
        for(j=0;j<m-i-1;j++)    少循环一次

------...-.-..-...-----........-------.......----.....------....||- - !
2008-04-14 23:48
魔芋大王
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2008-2-14
收藏
得分:0 
for(i=0;i<m-1;i++)
    {
        for(j=0;j<m-i-1;j++)
        {   
            if((stu[j].p)<(stu[j+1].p));
            {
                stu2=stu[j];
                stu[j]=stu[j+1];
                stu[j+1]=stu2;
            }
        }
    }
多了个分号
2008-04-15 20:41
快速回复:不能排序的问题?
数据加载中...
 
   



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

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