| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1359 人关注过本帖
标题:指针,排序学生成绩
只看楼主 加入收藏
bjut_Allen
Rank: 9Rank: 9Rank: 9
来 自:平乐园工业技术学校
等 级:蜘蛛侠
威 望:8
帖 子:323
专家分:1223
注 册:2016-10-16
结帖率:95.45%
收藏
已结贴  问题点数:5 回复次数:6 
指针,排序学生成绩
排学生成绩,怎么出错了呢?

#include <stdio.h>
typedef struct{
    int num;   //学号
    int score;  //分数
}STU;
#define NUM 2
void input(STU s[]);   //输入函数
void output(STU s[]);   //输出函数
void sort(STU s[]);   //选择函数
int main()
{
    STU s[NUM];   
    input(s);
    output(s);
    sort(s);
    output(s);
    return 0;   
}
void input(STU s[])
{
    int i;
    STU* p=s;
    for(i=0;i<NUM;i++){
    printf("Enter num & score:");
    scanf("%d%d",&p->num,&p->score);   
    }
}
void output(STU s[])
{
    int i;
    STU* p=s;
    for(i=0;i<NUM;i++){
    printf("num=%d\tscore=%d\n",p->num,p->score);   
    }
}
void sort(STU s[])
{
    int i,j;
    STU temp;
    STU* p=s;
    for(i=0;i<NUM-1;i++)
    for(j=NUM-1;j>i;j--){
        if(p->score>((p-1)->score)){
            temp=*p;
            *p=*(p-1);
            *(p-1)=temp;   
        }   
    }
}
搜索更多相关主题的帖子: include return Enter 
2016-11-21 23:21
小灬志
Rank: 2
来 自:湖南
等 级:论坛游民
帖 子:6
专家分:16
注 册:2016-11-11
收藏
得分:4 
#include <stdio.h>
typedef struct{
    int num;   //学号
    int score;  //分数
}STU;
#define NUM 2
void input(STU s[]);   //输入函数
void output(STU s[]);   //输出函数
void sort(STU s[]);   //选择函数
int main()
{
    STU s[NUM];   
    input(s);//成绩输入
    printf("--------------------分割线--------------------------\n");
    sort(s);//成绩排名
    output(s);//成绩输出
    return 0;   
}
void input(STU s[])
{
    int i;
    STU *p=s;
    for(i=0;i<NUM;i++){
    printf("Enter num & score:");
    scanf("%d %d",&p->num,&p->score);   
    p++;
    }
}
void output(STU s[])
{
    int i;
    STU *p=s;
    printf("名次 \t 学号 \t 成绩 \n");
    for(i=0;i<NUM;i++){
    printf("%d \t %d \t %d \n",i+1,p->num,p->score);   
    p++;
    }
}
void sort(STU s[])
{
    int i,j;
    STU temp;
    STU *p=s;
    for(i=0;i<NUM-1;i++)
    for(j=NUM-1;j>i;j--){
        if(p->score < ((p+1)->score)){
            temp=*p;
            *p=*(p+1);
            *(p+1)=temp;   
        }   
    }
}


2016-11-22 10:45
小灬志
Rank: 2
来 自:湖南
等 级:论坛游民
帖 子:6
专家分:16
注 册:2016-11-11
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册
2016-11-22 10:48
放假可好?
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2016-11-22
收藏
得分:0 
回复 2楼 小灬志
你这个代码不行额
2016-11-22 16:55
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:1 
既然都用到顺序表了,怎么还搞个链表指针出来,看上去像链表做法但又不是链表,这样用指针引用很容易出错的,用结构体数组就行了,具体用法和数组差不多~

#include <stdio.h>
typedef struct STU
{
    int num;   //学号
    int score;  //分数
}STU;
#define NUM 2
void input(STU s[]);   //输入函数
void output(STU s[]);   //输出函数
void sort(STU s[]);   //选择函数
int main()
{
    STU s[NUM];   
    input(s);
    output(s);
    sort(s);
    output(s);
    return 0;   
}
void input(STU s[])
{
    int i;
    for(i=0;i<NUM;i++)
    {
        printf("Enter num & score:");
        scanf("%d%d",&s[i].num,&s[i].score);
    }
}
void output(STU s[])
{
    int i;
    STU* p=s;
    for(i=0;i<NUM;i++)
    {
        printf("num=%d\tscore=%d\n",s[i].num,s[i].score);   
    }
}
void sort(STU s[])
{
    int i,j;
    STU temp;
    STU* p=s;
    for(i=0;i<NUM-1;i++)
    for(j=NUM-1;j>i;j--)
    {
        if(s[j].score>s[j-1].score)
        {
            temp=s[j];
            s[j]=s[j-1];
            s[j-1]=temp;   
        }   
    }
}

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2016-11-22 23:13
bjut_Allen
Rank: 9Rank: 9Rank: 9
来 自:平乐园工业技术学校
等 级:蜘蛛侠
威 望:8
帖 子:323
专家分:1223
注 册:2016-10-16
收藏
得分:0 
回复 5楼 九转星河
这节课学的指针,所以您的sort函数中我不知道指针怎么用了?能不能解释一下

Code is my life.
2016-11-23 21:00
bjut_Allen
Rank: 9Rank: 9Rank: 9
来 自:平乐园工业技术学校
等 级:蜘蛛侠
威 望:8
帖 子:323
专家分:1223
注 册:2016-10-16
收藏
得分:0 
回复 2楼 小灬志
太感谢,我(p+1)->score那写错了!

Code is my life.
2016-11-23 21:05
快速回复:指针,排序学生成绩
数据加载中...
 
   



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

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