标题:同志们看看这个错在哪里啦?
只看楼主
codemelody
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-3-8
结帖率:0
已结贴  问题点数:10 回复次数:5 
同志们看看这个错在哪里啦?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct Lnode
{
    char num[10];
    char nam[15];
    int score1;
    int score2;
    int score3;
    float ave;
    struct Lnode *next;
} stutype,*Linklist;
stutype *p,*q;
Linklist L;

int main()
{
    int n,i,j;
    scanf("%d",&n);
    L=(stutype*)malloc(sizeof(stutype));
    p=L->next;
    for(i=0; i<n; i++)
    {
        p=(stutype*)malloc(sizeof(stutype));
        scanf("%s %s %d %d %d",p->num,p->nam,&p->score1,&p->score2,&p->score3);
        p->ave=(p->score1+p->score2+p->score3)/3;
        p=p->next;
    }
    float a[n],temp;
    q=L->next;
    for(i=0; i<n; i++)
    {
       a[i]=q->ave;
        q=q->next;

    }

    for(i=0; i<n-1; i++)
    {
        for(j=1; j<n; j++)
        {
            if(a[i]<a[j])
            {
                temp=a[i];
                a[i]=a[j];
                a[j]=temp;
            }
        }
    }
    p=L->next;
    while(p)
    {
        for(i=0; i<n; i++)
        {
            if(a[i]==p->ave)
            {
                printf("%s %s %d %d %d %.2f %d",p->num,p->nam,p->score1,p->score2,p->score3,p->ave,i+1);
            }
        }
        p=p->next;

    }

    return 0;
}
红字处用DEBUG检查总是报错,但不知错在哪里!大神们帮帮忙!题目如下:
标题:    学生信息管理
时 限:    1000 ms
内存限制:    20000 K
总时限:     ms
描述:    用链式存储结构实现对一个班级学生信息管理。设计程序求出每个人的平均成绩并按平均成绩由高到底排序后输出学生记录。
输入:    人数n
人员记录1 (格式为: 学号 姓名 成绩1  成绩2  成绩3)
人员记录2
输出:    人员记录x                                                        1
人员记录y                                                        2
  …
人员记录z                                                        n
输入样例:    3
1 孙俪莉  76  78  89  
2 章子怡  72  56  67  
3 刘德华  56  84  90
输出样例:    1 孙俪莉  76 78  89  81.00  1
3 刘德华 56  84  90  76.67  2
2 章子怡 72  56  67  65.00  3
提示:   
来源:
搜索更多相关主题的帖子: include next 
2012-03-12 22:33
zhoufeng1988
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:北京
等 级:贵宾
威 望:27
帖 子:1432
专家分:6329
注 册:2009-5-31
得分:5 
你的链表都没有串起来。
我改了改,TryTrySee..
程序代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct Lnode
{
    char num[10];
    char nam[15];
    int score1;
    int score2;
    int score3;
    float ave;
    struct Lnode *next;
} stutype,*Linklist;
stutype *p,*q, *p_previous;            /* Save the previous pointer. */
Linklist L;

int main()
{
    int n,i,j;
    scanf("%d",&n);
    L=(stutype*)malloc(sizeof(stutype));
    p=L->next;
    p_previous = L;
    for(i=0; i<n; i++)
    {
        p=(stutype*)malloc(sizeof(stutype));
        /* Save */
        p_previous->next = p;
   
        scanf("%s %s %d %d %d",p->num,p->nam,&p->score1,&p->score2,&p->score3);
        p->ave=(p->score1+p->score2+p->score3)/3;
        /* Resave for loop */
        p_previous = p;
        p=p->next;
   
    }
    float a[n],temp;
    q=L->next;
    for(i=0; i<n; i++)
    {
       a[i]=q->ave;
       q=q->next;
    }

    for(i=0; i<n-1; i++)
    {
        for(j=1; j<n; j++)
        {
            if(a[i]<a[j])
            {
                temp=a[i];
                a[i]=a[j];
                a[j]=temp;
            }
        }
    }
    p=L->next;
    while(p)
    {
        for(i=0; i<n; i++)
        {
            if(a[i]==p->ave)
            {
                printf("%s %s %d %d %d %.2f %d",p->num,p->nam,p->score1,p->score2,p->score3,p->ave,i+1);
            }
        }
        p=p->next;

    }

    return 0;
}

2012-03-13 11:17
codemelody
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-3-8
得分:0 
让我试一下!
2012-03-13 11:48
codemelody
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-3-8
得分:0 
额的神呢,最后输出有误,只能输出第一个人!
大概是while后边那块错了,但是小弟才疏学浅检查不出来,还请大神们帮帮忙!
2012-03-13 12:20
jyfswu
Rank: 1
等 级:新手上路
帖 子:2
专家分:5
注 册:2012-3-13
得分:5 
float a[n],temp;改成
float a[sizeof(n)],temp;
2012-03-13 21:47
jyfswu
Rank: 1
等 级:新手上路
帖 子:2
专家分:5
注 册:2012-3-13
得分:0 
while(p)改成
while(p->next)
2012-03-13 21:55



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-362959-1-1.html




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

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