关于链表输入输出问题
#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);
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=ListInit(L);
L=ListCreate(L);
ListPrint(L);
}
输出好像还有点问题哦!
不知道哪里错误!郁闷了
应该怎么实现输入和输出才是最好的呢?
多个字符串 scanf();的输入应该怎么办呢?
是不是应该分多行写?
那么输出呢?
相关推荐
cpp代码-链表之报数问题-oj
cpp代码-链表之报数问题-oj
c++循环链表解决约瑟夫环问题
约瑟夫环 问题描述:约瑟夫问题的一种描述是:编号为1,2,…,n的n个人按顺时针方向围坐一圈,每人持一个密码(正整数)。一开始任选一个正整数作为报数上限值m,从第一个人开始按顺时针方向自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他在顺时针方向上的下一个人开始重新从1报数,如此下去,直至所有人全部出列为止。试设计一个程序求出出列顺序。 基本要求 利用单向循环链表存储结构模拟此过程,按照出列的顺序印出各人的编号。 测试数据 M的初值为20;n=7,7各人的密码依次为3,1,7,2,4,8,4,首先m值为6(正确出栈顺序为6,1,4,7,2,3,5)
数据结构链表作业
北航数据结构链表操作实践作业.要求:从文件中读入一组成绩,并倒序打印至另一文件中。数据用链表存储。
约瑟夫问题用循环链表实现
约瑟夫问题是一个经典的问题。已知n个人(不妨分别以编号1,2,3,…,n 代表)围坐在一张圆桌周围,从编号为 k 的人开始,从1开始顺时针报数1, 2, 3, ...,顺时针数到m 的那个人,出列并输出。然后从出列的下一个人开始,从1开始继续顺时针报数,数到m的那个人,出列并输出,…依此重复下去,直到圆桌周围的人全部出列。 输入:n,k,m 输出:按照出列的顺序依次输出出列人的编号,编号中间相隔一个空格,每10个编号为一行。 非法输入的对应输出如下 a) 输入::n、k、m任一个小于1 输出:n,m,k must bigger than 0. b) 输入:k>n 输出:k should not bigger than n. 例 输入 9,3,2 输出 4 6 8 1 3 7 2 9 5
C++单链表实现大数加法
主要为大家详细介绍了C++单链表实现大数加法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下


