用C语言设计一个通讯录,未完成的源代码如下,求大神帮我修改一下错误,然后完善一下让它能运行

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define N 50
struct friend_list {
char name[10];
char tel[13];
char email[25];

}fri[N];
void add_friend(struct friend_list *p);
void search_friend(struct friend_list *p,char*name);
void del_friend(struct friend_list *p,char*name);
void renew_friend(struct friend_list *p,char*name);

int n=0;

int main(){
int friendnumber=0;
int chose=0;
while(1){
printf("1:新增联系人\n");
printf("2:按姓名查找联系人\n");
printf("3:按姓名删除联系人\n");
printf("4:按姓名修改联系人\n");
printf("0:退出\n");

printf("\n请选择输入(0-4):");
scanf("%d",&chose);
switch(chose){
case 1:add_friend(fri);break;
case 2:
case 3:
case 4:
case 0:
default:0;
} }
}
void add_friend(struct friend_list *p){
if(n>=N){
printf("已经满员,不能添加了。\n");
return;
}printf("请输入新增联系人的姓名,联系电话,电子邮箱:\n");
scanf("%s%s%s",p[n].name,p[n].tel,p[n].email);
++n;
}

void search_friend(struct friend_list *p){
int i,flag=1;
char name[10];
printf("请输入要查找的联系人的名字:\n");
scanf("%s",name);
for(i=0;i<n&&flag;i++){
if(strcmp(p[i].name,name)==0){
printf("%s %s %s\n",name,p[i].tel,p[i].name);
flag=0;
}
}

if(flag)printf("没有找到名字叫:%s的人!\n",name);}

void del_friend(struct friend_list *p){
int i=0,j=0;
char name[10];
printf("请输入您要删除的联系人的姓名:\n");
scanf("%s",name);
for(i=0;i<n;i++){
if(strcmp(p[i].name,name)==0){
for(j=i;j<n-1;j++)p[j]=p[j+1];
n--;
printf("删除成功!\n");
}
}
}
还少了个修改联系人的函数,但我不知道怎么设计才行
case2到case4也帮我完善一下
以上这段程序编译错误: [Error] ld returned 1 exit status
不好意思,那个编译没错,是我运行后没关掉运行窗口就又编译了

你这个写成链表吧。。。数组修改太麻烦。删除那里也是,而且满员了再想添加也是问题。
温馨提示:内容为网友见解,仅供参考
第1个回答  2015-07-11
C语言设计一个通讯录设计可帮忙写作。
第2个回答  2015-07-11
太少 ,懒得改,你这许多地方都写的 不合理
相似回答