| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 842 人关注过本帖
标题:建立连表并输出,不知道为什么总是只输出第一个结构体后面就成了乱码
取消只看楼主 加入收藏
llp108
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2007-11-15
结帖率:25%
收藏
 问题点数:0 回复次数:1 
建立连表并输出,不知道为什么总是只输出第一个结构体后面就成了乱码
#include "stdio.h"
#include "stdlib.h"
#define LEN sizeof(struct student)
#define NUL 0
struct student
{
    char num[5];
    char name[20];
    float score;
    struct student*next;
};
void print(struct student*p)
{
    printf("连表是:\n");
    printf("学号        姓名        成绩\n");
    do
          {printf("%5s%10s%10.2f\n",p->num,p->name,p->score);
           p++;}while(p->next!=NUL);
}

struct student *creat(struct student*p,int n)
{
    struct student *p1,*p2;
    int N=1;
    if(n==0)
    p=NUL;
    else
    {p1=p;
    do
     {printf("第%d个学生:\n",N);
      printf("学号:");
      scanf("%s",&p1->num);
      printf("姓名:");
      scanf("%s",&p1->name);
      printf("成绩:");
      scanf("%f",&p1->score);
      if(n==1)
         p->next=NUL;
      else
        {p2=p1;
         p1=(struct student*)malloc(LEN);
         p2->next=p1;}
      N++;} while(N<=n);
     if(n!=1)
      p2->next=NUL;}
     return(p);
}         
main()
{
    
    struct student *pa,a;
    int na;
    pa=&a;
    printf("链表结点数:");
        scanf("%d",&na);
        pa=creat(pa,na);
        print(pa);
}

[[italic] 本帖最后由 llp108 于 2008-1-6 17:18 编辑 [/italic]]
搜索更多相关主题的帖子: 结构体 乱码 输出 
2008-01-06 17:17
llp108
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2007-11-15
收藏
得分:0 
偶 明白了 谢谢
2008-01-06 19:39
快速回复:建立连表并输出,不知道为什么总是只输出第一个结构体后面就成了乱码
数据加载中...
 
   



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

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