| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 639 人关注过本帖
标题:简单的链表程序找错
取消只看楼主 加入收藏
雪天
Rank: 1
等 级:新手上路
帖 子:18
专家分:5
注 册:2009-7-23
结帖率:40%
收藏
已结贴  问题点数:20 回复次数:2 
简单的链表程序找错
原题:
每个学生有3门课程结业考试成绩。输入每个学生的姓名和成绩,计算并输出每个学生的姓名和平均成绩。

我的程序:(错的)#include"stdio.h"
#define NULL 0
#define LEN sizeof(struct student)
struct student
{
    char name[20];
    float score1;
    float score2;
    float score3;
    struct student *next;
};
struct student *create()
{
    int n;
    n=1;
    struct student *head,*p1,*p2;
    p1=(struct student *)malloc(LEN);
    head=NULL;
    gets_s(p1->name);
    scanf("%f%f%f",&p1->score1,&p1->score2,&p1->score3);
    p1->next=NULL;
    while(p1->score1>=0)
    {
        n++;
        if(n==1)head=p1;
        else p2->next=p1;
        p2=p1;
        p1=(struct student *)malloc(LEN);
        gets_s(p1->name);
        scanf("%f%f%f",&p1->score1,&p1->score2,&p1->score3);
        p1->next=NULL;
    }
    free(p1);
    return(head);
}
void main(struct student *create)
{
    float average;
    struct student *p,*head;
    p=create;
    head=create;
    while(p->next!=NULL)
    {
        if(head==NULL)printf("\nlist NULL\n");
        else
        {
            average=(p->score1+p->score2+p->score3)/3;
            printf("\nName:%s\nAverage:%f\n",p->name,average);
            p=p->next;
        }
    }
}
搜索更多相关主题的帖子: 链表 
2009-08-09 23:12
雪天
Rank: 1
等 级:新手上路
帖 子:18
专家分:5
注 册:2009-7-23
收藏
得分:0 
回复 2楼 广陵绝唱

那个在#define NULL 0和free(p1)之前为什么要加"//"呢?
2009-08-10 08:18
雪天
Rank: 1
等 级:新手上路
帖 子:18
专家分:5
注 册:2009-7-23
收藏
得分:0 
回复 2楼 广陵绝唱

还有为什么我原来那个不行呢?大侠讲解一下啦
2009-08-10 08:20
快速回复:简单的链表程序找错
数据加载中...
 
   



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

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