
C语言链表,为什么输出的时候只能输出q->a的值
#include<stdio.h>#include<stdlib.h>#include<string.h>//创建结构体structnode{chara[11];char...
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//创建结构体
struct node{
char a[11];
char name[20];
struct node *next;
};
//为了方便
typedef struct node linknode;
typedef linknode *linklist;
//创建链表
linklist creatNode(){
int judge;
linklist head,tail,q;
head = tail = NULL;
printf("是否继续输入?(input 1 or 0)\n");
scanf("%d",&judge);
while(judge) {
q = (linklist)malloc(sizeof(linknode));
printf("请输入\t姓名\t手机号:\n");
scanf("%s",q->name);
scanf("%s",q->a);
if( head==NULL)
head = tail = q;
else{
tail->next = q;
tail = q;
}
printf("是否继续输入?(input 1 or 0)\n");
scanf("%d",&judge);
}
if(tail != NULL)//收尾
tail->next = NULL;
return head;
}
printLink(linklist head)
{
linklist p;
p = head;
while(p!=NULL)
{
puts(p->name);
puts(p->a);
printf("\n");
p=p->next;
}
}
printScreen(){
printf("\n\n\n");
printf("\t\t\t\t\t--------------------------------\n");
printf("\t\t\t\t\t\t 1.新建链表\n");
printf("\t\t\t\t\t\t 2.显示链表\n");
printf("\t\t\t\t\t\t 3.功能界面\n");
printf("\t\t\t\t\t\t 4.退出程序\n");
printf("\t\t\t\t\t--------------------------------\n");
}
int main()
{
int choose;
linklist head=NULL;
printScreen();
while(1){
printf("\t\t\t\t\t 请输入功能前序号:");
scanf("%d",&choose);
switch(choose){
case 1:head=creatNode();break;
case 2:printLink(head);break;
case 3:printScreen();break;
case 4:printf("程序结束,谢谢您的使用!");exit(0);
}
}
return 0;
} 展开
#include <stdlib.h>
#include <string.h>
//创建结构体
struct node{
char a[11];
char name[20];
struct node *next;
};
//为了方便
typedef struct node linknode;
typedef linknode *linklist;
//创建链表
linklist creatNode(){
int judge;
linklist head,tail,q;
head = tail = NULL;
printf("是否继续输入?(input 1 or 0)\n");
scanf("%d",&judge);
while(judge) {
q = (linklist)malloc(sizeof(linknode));
printf("请输入\t姓名\t手机号:\n");
scanf("%s",q->name);
scanf("%s",q->a);
if( head==NULL)
head = tail = q;
else{
tail->next = q;
tail = q;
}
printf("是否继续输入?(input 1 or 0)\n");
scanf("%d",&judge);
}
if(tail != NULL)//收尾
tail->next = NULL;
return head;
}
printLink(linklist head)
{
linklist p;
p = head;
while(p!=NULL)
{
puts(p->name);
puts(p->a);
printf("\n");
p=p->next;
}
}
printScreen(){
printf("\n\n\n");
printf("\t\t\t\t\t--------------------------------\n");
printf("\t\t\t\t\t\t 1.新建链表\n");
printf("\t\t\t\t\t\t 2.显示链表\n");
printf("\t\t\t\t\t\t 3.功能界面\n");
printf("\t\t\t\t\t\t 4.退出程序\n");
printf("\t\t\t\t\t--------------------------------\n");
}
int main()
{
int choose;
linklist head=NULL;
printScreen();
while(1){
printf("\t\t\t\t\t 请输入功能前序号:");
scanf("%d",&choose);
switch(choose){
case 1:head=creatNode();break;
case 2:printLink(head);break;
case 3:printScreen();break;
case 4:printf("程序结束,谢谢您的使用!");exit(0);
}
}
return 0;
} 展开
1个回答
展开全部
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <dos.h> //system()函数相应的头文件
//创建结构体
struct node{
char a[11];
char name[20];
struct node *next;
};
//为了方便
typedef struct node linknode;
typedef linknode *linklist;
//创建链表
linklist creatNode(){
int judge;
linklist head,tail,q;
head = tail = NULL;
printf("是否继续输入?(input 1 or 0)\n");
scanf("%d",&judge);
while(judge) {
q = (linklist)malloc(sizeof(linknode));
printf("请输入\t姓名\t手机号:\n");
scanf("%s",q->name);
scanf("%s",q->a);
if( head==NULL)
head = tail = q;
else{
tail->next = q;
tail = q;
}
printf("是否继续输入?(input 1 or 0)\n");
scanf("%d",&judge);
}
if(tail != NULL)//收尾
tail->next = NULL;
return head;
}
printLink(linklist head)
{
linklist p;
p = head;
while(p!=NULL)
{
puts(p->name);
puts(p->a);
printf("\n");
p=p->next;
}
}
printScreen(){
system("cls"); //清屏操作
printf("\n\n\n");
printf("\t\t\t\t\t--------------------------------\n");
printf("\t\t\t\t\t\t 1.新建链表\n");
printf("\t\t\t\t\t\t 2.显示链表\n");
printf("\t\t\t\t\t\t 3.功能界面\n");
printf("\t\t\t\t\t\t 4.退出程序\n");
printf("\t\t\t\t\t--------------------------------\n");
}
int main()
{
int choose;
linklist head=NULL;
printScreen();
while(1){
printf("\t\t\t\t\t 请输入功能前序号:");
scanf("%d",&choose);
switch(choose){
case 1:head=creatNode();break;
case 2:printLink(head);break;
case 3:printScreen();break;
case 4:printf("程序结束,谢谢您的使用!");exit(0);
}
}
return 0;
}
//你的代码可以输出啊,我在你的“3.功能界面”给你加了条清屏操作的语句。其他的没什么问题
//我运行后可以正常输出结果啊
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询