| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 408 人关注过本帖
标题:一个关于链表创建的问题
只看楼主 加入收藏
浩加加
Rank: 2
等 级:论坛游民
帖 子:51
专家分:14
注 册:2009-11-12
结帖率:94.12%
收藏
已结贴  问题点数:20 回复次数:3 
一个关于链表创建的问题
#include "stdio.h"
#include "stdlib.h"
#include <conio.h>
#define LEN sizeof(struct students)
#define NULL 0
typedef struct students
{
    int id;//学号
    char name[20];//名字
    char sex[10];//性别
    float score[5];//存放学生5门成绩
    float sum;//总分
    float ave;//平均分
    int rank;//名次
    struct students *next;
}STU;
STU *creat_record()
{   int i;
    int n=1;
    char command,ch;
    STU *head,*p1,*p2;
    p1=p2=(STU*) malloc(LEN);
    p1->sum=0;
    system("cls");
    printf("\n请输入相关信息。。。。\n");
    printf("第%d个记录\n",n);
    printf("\n学号:");
    scanf("%d",&p1->id);
    printf("\n姓名:");
    scanf("%s",p1->name);
    printf("\n性别:");
    scanf("%s",p1->sex);
    printf("\n5科的学分(以空格隔开):\n");
    for(i=0;i<5;i++)
    {
    scanf("%f",&p1->score[i]);
    p1->sum+=p1->score[i];
    }
    p1->ave=p1->sum/i;
    printf("\n总分:%0.2f  平均分:%0.2f\n",p1->sum,p1->ave);
    printf("\n是否继续输入?(Y/N)");
    fflush(stdin);//在scanf接收一个字符前应先清空缓冲区,以免前次输入时末尾的回车带入下次的输入中
    scanf("%c",&command);
    while(command=='y' || command=='Y')
    {
    n=n+1;
    if(n=2)
        head=p1;
    else
        p2=p1;
    p1=(STU*) malloc(LEN);
    p1->sum=0;
    system("cls");
    printf("\n请输入相关信息。。。。\n");
    printf("第%d个记录\n",n);//为什么这里是无限第二个记录,谁可以帮忙解释下··
    printf("\n学号:");
    scanf("%d",&p1->id);
    printf("\n姓名:");
    scanf("%s",p1->name);
    printf("\n性别:");
    scanf("%s",p1->sex);
    printf("\n5科的学分(以空格隔开):\n");
    for(i=0;i<5;i++)
    {
    scanf("%f",&p1->score[i]);
    p1->sum+=p1->score[i];
    }
    p1->ave=p1->sum/i;
    printf("\n总分:%0.2f  平均分:%0.2f\n",p1->sum,p1->ave);
    p2->next=p1;
    n++;
    printf("\n是否继续输入?(Y/N)");
    fflush(stdin);
    scanf("%c",&command);
    }
    p1->next=NULL;
    return head;
}
main()
{
creat_record();
}
搜索更多相关主题的帖子: 链表 
2010-04-24 15:38
rib
Rank: 4
等 级:业余侠客
帖 子:95
专家分:252
注 册:2009-3-30
收藏
得分:20 
while(command=='y' || command=='Y')
    {
    n=n+1;
    if(n=2)//这里错了   是n == 2
        head=p1;
    else
        p2=p1;
    p1=(STU*) malloc(LEN);
    p1->sum=0;
    system("cls");
    printf("\n请输入相关信息。。。。\n");
    printf("第%d个记录\n",n);
2010-04-24 15:43
浩加加
Rank: 2
等 级:论坛游民
帖 子:51
专家分:14
注 册:2009-11-12
收藏
得分:0 
唉··做个课程设计那么多疏忽的小错误

向来缘浅.奈何情深 如花美眷.似水流年
2010-04-24 15:45
rib
Rank: 4
等 级:业余侠客
帖 子:95
专家分:252
注 册:2009-3-30
收藏
得分:0 
我编译器没通过,研究下!
LZ   用的是什么编译器啊!
2010-04-24 15:55
快速回复:一个关于链表创建的问题
数据加载中...
 
   



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

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