自己写的联系人管理系统,每次编译都能过,运行的时候能够进入while循环体,但是无法显示L->psinfo->name等个人信息,而且终端会类似暂停
初学者求解答QAQ
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct person
{
char name[40];
int phonenumber;
char appellation[10];
}person;//新定义一个结构变量并命名为person
typedef struct psNode
{
person psinfo;
struct psNode *next;
}psNode,*Linkelist;//定义一个链表用来链接个人信息
int Initps(Linkelist L){
L = (Linkelist)malloc(sizeof(Linkelist));
L->next = NULL;
L->psinfo.phonenumber = 0;
strcmp(L->psinfo.name,"name");
strcmp(L->psinfo.appellation,"appellation");
printf("\n联系人初始化正常");
return 0;
}
int Addps(Linkelist L){
psNode* psnode = (psNode *)malloc(sizeof(psNode));
printf("\n请输入名字:");
scanf("%s",&psnode->psinfo.name);
printf("\n请输入电话:");
scanf("%d",&psnode->psinfo.phonenumber);
printf("\n请输入称呼(可为空)");
scanf("%s",&psnode->psinfo.appellation);//定义一个新的节点,并储存相应信息
psnode->next = L->next;
L->next = psnode;
printf("联系人插入正常");
return 0;
}
int Deleps(Linkelist L,int k){
int j ;
while(L->next && j != k){
L = L->next;
j++;
}
Linkelist p = L ->next ;
L->next = p->next;
free(p);
printf("联系人删除正常");
return 0;
}
int operation(Linkelist L){
printf("\n输入您的操作\n");//输入操作
printf("1为新建联系人,2为删除联系人,3为收藏联系人,4为拉黑联系人");
int choice;
scanf("%d",&choice);
switch (choice)
{
case 1:
Addps(L);
case 2:
printf("请输入要删除的联系人的数字前缀id:");
int i;
scanf("%d",&i);
Deleps(L,i);
case 3:
//收藏
case 4:
//拉黑
default:
break;
}
}
int main(){
printf("欢迎使用联系人操作系统");
int awa = 1;
Linkelist L;
Initps(L);
int j = 0;
printf("\n即将进入循环体");
while (L){
printf("while循环正常");
printf("%d %s %d %s",j,L->psinfo.name,L->psinfo.phonenumber,L->psinfo.appellation);//展示全部联系人信息;
L = L->next;
j++;
}
while(awa == 1){
operation(L);
}
}