在写c语言通讯录的时候想先写一个添加功能试试看,根据网上的内容提示自己试了试,结果菜单都打不出来
无法打印,打印无结果
#include<stdio.h>
#include<string.h>
#define MAX_name 20
#define MAX_phone 20
#define MAX_sex 20
#define MAX_addr 20
#define MAX 1000
//函数声明
void menu();
void begin(contact* pc);
void c_add(contact* pc);
void test();
void menu()//打印菜单
{
printf("########################");
printf("#### 1.增加联系人 ####");
printf("#### 2.删除联系人 ####");
printf("#### 3.查找联系人 ####");
printf("#### 4.打印联系人 ####");
printf("#### 5.修改联系人 ####");
printf("#### 6.退出通讯录 ####");
printf("########################");
}
typedef struct//一个用来存贮成员信息的结构体peo
{
char name[MAX_name];
char sex[MAX_sex];
char phone[MAX_phone];
char addr[MAX_addr];
}peo;
typedef struct
{
peo* man;//结构体指针
int size;//人数
}contact;
enum {add=1,cut,find,print,change,secede};//枚举数字
void begin(contact*pc)//初始化通讯录
{
memset(pc->man, 0, sizeof(pc->man));
pc->size = 0;
}
void c_add(contact* pc)//添加功能
{
if (pc->size == MAX)
{
printf("通讯录已满");
}
else
{
printf("请输入名字: ");
scanf("%s\n",pc->man[pc->size].name);
printf("请输入性别: ");
scanf("%s\n",pc->man[pc->size].sex);
printf("请输入电话: ");
scanf("%s\n",pc->man[pc->size].phone);
printf("请输入地址: ");
scanf("%s\n",pc->man[pc->size].addr);
pc->size++;
printf("添加成功");
}
}
void test()
{
contact con;
begin(&con);
int dis = 0;
menu();
do
{
printf("请输入选择: ");
scanf("%d", dis);
switch (dis)
{
case add:c_add(&con); break;
default:printf("失败");
}
while (secede);
}
}
int main()//主函数///////////////////////////////////////////////
{
test();
return 0;
}
结果如图
在发现连菜单都打印不出来以后,我想着把菜单单独变成一个函数然后再带入test里面去,结果果然一样