首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

关于C语言链表的有关问题

2012-02-16 
关于C语言链表的问题在下面的程序中,输入和输出都对不上号,请各位帮忙解释一下,先谢过了。程序代码:#includ

关于C语言链表的问题
在下面的程序中,输入和输出都对不上号,请各位帮忙解释一下,先谢过了。
程序代码:
#include <stdio.h>
#define   maxsize   100

struct   student
{     char   num[10];
      char   name[10];
      char   sex[2];
      char   tel[15];
      char   addr[50];
};
struct   list
{     int   len;
      struct   student   stu[maxsize];
};


struct   list   ListInit(struct   list   L)
{     L.len=0;
      return(L);
}


struct   list   ListCreate(struct   list   L)
{     int   i=0;
      char   x1[10],x2[10],x3[2],x4[15],x5[50];
      char   ch;
      do
      {     printf( "\nNum: ");   fflush(stdin);
            scanf( "%c ",&x1);     fflush(stdin);
            printf( "\nName: ");
            scanf( "%c ",&x2);     fflush(stdin);
            printf( "\nSex: ");
            scanf( "%c ",&x3);     fflush(stdin);
            printf( "\nTel: ");
            scanf( "%c ",&x4);     fflush(stdin);
            printf( "\nAddr: ");
            scanf( "%c ",&x5);     fflush(stdin);
            strcpy(L.stu[i].num,x1[10]);
            strcpy(L.stu[i].name,x2[10]);
            strcpy(L.stu[i].sex,x3[2]);
            strcpy(L.stu[i].tel,x4[15]);
            strcpy(L.stu[i].addr,x5[50]);
            i++;
            ch=getchar();
      }   while(ch!= '0 ');
      L.len=i;
      return(L);
}


void   ListPrint(struct   list   L)
{     int   i;
      for(i=0;i <L.len;i++)
      {     printf( "\nNum:%s\nName:%s\nSex:%s\nTel:%s\nAddr:%s\n ",L.stu[i].num,L.stu[i].name,L.stu[i].sex,L.stu[i].tel,L.stu[i].addr);
      }
      printf( "\n ");
}


void   main()
{     struct   list   L;
      L=ListCreate(L);
      ListPrint(L);
}


[解决办法]
#include <stdio.h>
#include <string.h> ////错误1,头文件没包括
#define maxsize 100 ///这个你也没用

struct student
{
char num[10];
char name[10];
char sex[2];
char tel[15];
char addr[50];
};
struct list
{
int len;
struct student stu[maxsize];
};


struct list ListInit(struct list L)///你这个仿佛没用到吧
{
L.len=0;
return(L);
}


struct list ListCreate(struct list L)


{
int i=0;
char x1[10],x2[10],x3[2],x4[15],x5[50];
char ch;
do
{
printf( "\nNum: "); fflush(stdin);
scanf( "%s ",x1); fflush(stdin); ///输入时为地址,而x1本身已经是地址了,所以
///不能再取地址,一下五个输入错误相同
printf( "\nName: ");
scanf( "%s ",x2); fflush(stdin);
printf( "\nSex: ");
scanf( "%s ",x3); fflush(stdin);
printf( "\nTel: ");
scanf( "%s ",x4); fflush(stdin);
printf( "\nAddr: ");
scanf( "%s ",x5); fflush(stdin);
strcpy(L.stu[i].num,x1); ///参数均为指针,你这里第一个参数对,第二个参数
///错了,第二个也应该是指针,不能写成x[10]。
strcpy(L.stu[i].name,x2);
strcpy(L.stu[i].sex,x3);
strcpy(L.stu[i].tel,x4);
strcpy(L.stu[i].addr,x5);
i++;
ch=getchar();
} while(ch!= '0 ');
L.len=i;
return(L);
}


void ListPrint(struct list L)
{
int i;
for(i=0;i <L.len;i++)
{
printf( "\nNum:%s\nName:%s\nSex:%s\nTel:%s\nAddr:%s\n ",L.stu[i].num,L.stu
[i].name,L.stu[i].sex,L.stu[i].tel,L.stu[i].addr);
}
printf( "\n ");
}


void main()
{
struct list L;
L=ListCreate(L);
ListPrint(L);
}

热点排行