//通訊錄建立,查詢,修改,洗掉及顯示程式
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int count=0;
char *NAME[30]
struct ml
{
char name[10];
char sex;
int age;
char num[10];
char phone[20];
};
//新建聯系人
void dnew(struct ml friends[])
{
struct ml x;
if(count==30)
{
printf("通訊錄已滿");
return;
}
printf(" 請輸入新聯系人的姓名 ");
scanf("%s",x.name);
printf(" 請輸入新聯系人的性別 ");
scanf("%c",x.sex);
printf(" 請輸入新聯系人的年齡 ");
scanf("%d",x.age);
printf(" 請輸入新聯系人的班級 ");
scanf("%s",x.num);
printf(" 請輸入新聯系人的聯系電話 ");
scanf("%s",x.phone);
printf("\n");
friends[count]=x;
count++;
}
//修改聯系人
void edit(struct ml friends[],char *name)
{
int i,j,k,a=0;
struct ml x;
for(i=0;i<count;i++)
{
if(strcmp(name,friends[i].name)==0)
{
a=1;
break;
}
}
if(a==1)
{
printf(" 請輸入修改后的名字 \n");
scanf("%s",x.name);
printf(" 請輸入修改后的性別 \n");
scanf("%c",x.sex);
printf(" 請輸入修改后的年齡 \n");
scanf("%d",x.age);
printf(" 請輸入修改后的班級 \n");
scanf("%s",x.num);
printf(" 請輸入修改后的聯系電話 ");
scanf("%s",x.phone);
friends[i]=x;
NAME[i]=friends[i].name;
for(i=0;i<count-1;i++)
{
k=i;
for(j=i+1;j<count;j++)
{
if(strcmp(NAME[i],NAME[j])>0)
k=j;
}
if(k!=i);
{x=friends[i];friends[i]=friends[k];friends[k]=x;}
}
}
else
printf("無此聯系人!\n");
}
//查詢聯系人
void search(struct ml friends[],char *name)
{
int i,flag=0;
if(count==0)
{
printf("通訊錄為空");
return;
}
for(i=0;i<count;i++)
{
if(strcmp(name,friends[i].name)==0)
{
flag=1;
printf("姓名: %s\t",friends[i].name);
printf("姓別: %c\t",friends[i].sex);
printf("年齡: %d\t",friends[i].age);
printf("班級: %s\t",friends[i].num);
printf("聯系電話: %s\t",friends[i].phone);
}
}
if(flag<1)
printf("無此聯系人!\n");
}
//洗掉聯系人
void deleted(struct ml friends[],char *name)
{
int i,j,flag=0;
for(i=0;i<count;i++)
{
if(strcmp(name,friends[i].name)==0)
{
flag=1;
break;
}
}
if(flag=1)
{
for(j=i;j<count;j++)
friends[j]=friends[j+1];
count--;
}
else
printf("聯系人不存在");
printf("聯系人已洗掉");
}
//顯示所有聯系人
void sort (struct ml friends[])
{
int i;
if(count==0)
{
printf("通訊錄為空!\n");
return;
}
else
{
printf("按字母順序排列:\n");
for(i=0;i<count;i++)
{
printf("姓名: %s\t",friends[i].name);
printf("姓別: %c\t",friends[i].sex);
printf("年齡: %d\t",friends[i].age);
printf("班級: %s\t",friends[i].num);
printf("聯系電話: %s\t",friends[i].phone);
}
}
}
//主函式
int main()
{
char choice;
char name[10];
struct ml friends[30];
do
{
printf("******通訊錄功能******\n");
printf(" 1 :新建 \n");
printf(" 2 :修改 \n");
printf(" 3 :查詢 \n");
printf(" 4 :洗掉 \n");
printf(" 5 :顯示 \n");
printf(" 0 :退出 \n");
printf("請選擇數字 : ");
scanf("%d",&choice);
switch(choice)
{
case 1: dnew (friends);
break;
case 2:
printf("請輸入要修改人的姓名: ");
scanf("%s",name);
edit (friends,name);
break;
case 3:
printf("請輸入要查詢人的姓名: ");
scanf("%s",name);
search (friends,name);
break;
case 4:
printf("請輸入要洗掉人的姓名: ");
scanf("%s",name);
deleted (friends,name);
break;
case 5:
sort (friends);
break;
case 0:
break;
}
}while(choice!=0);
printf(" 感謝使用通訊錄管理系統!\n");
return 0;
}
這是vc++給指出的錯誤,有點看不懂
1>------ 已啟動生成: 專案: 發, 配置: Debug Win32 ------
1> mc.c
1>c:\users\11582\documents\visual studio 2010\projects\發\發\mc.c(8): error C2054: 在“NAME”之后應輸入“(”
1>c:\users\11582\documents\visual studio 2010\projects\發\發\mc.c(9): error C2057: 應輸入常量運算式
1>c:\users\11582\documents\visual studio 2010\projects\發\發\mc.c(10): error C2229: struct“ml”有非法的大小為零的陣列
1>c:\users\11582\documents\visual studio 2010\projects\發\發\mc.c(12): error C2057: 應輸入常量運算式
1>c:\users\11582\documents\visual studio 2010\projects\發\發\mc.c(13): error C2057: 應輸入常量運算式
1>c:\users\11582\documents\visual studio 2010\projects\發\發\mc.c(13): error C2229: struct“ml”有非法的大小為零的陣列
1>c:\users\11582\documents\visual studio 2010\projects\發\發\mc.c(16): error C2233: “friends”: 包含大小為零的陣列的物件陣列是非法的
1>c:\users\11582\documents\visual studio 2010\projects\發\發\mc.c(17): error C2085: “dnew”: 不在形參表中
1>c:\users\11582\documents\visual studio 2010\projects\發\發\mc.c(17): error C2143: 語法錯誤 : 缺少“;”(在“{”的前面)
1>c:\users\11582\documents\visual studio 2010\projects\發\發\mc.c(39): error C2233: “friends”: 包含大小為零的陣列的物件陣列是非法的
1>c:\users\11582\documents\visual studio 2010\projects\發\發\mc.c(81): error C2233: “friends”: 包含大小為零的陣列的物件陣列是非法的
1>c:\users\11582\documents\visual studio 2010\projects\發\發\mc.c(105): error C2233: “friends”: 包含大小為零的陣列的物件陣列是非法的
1>c:\users\11582\documents\visual studio 2010\projects\發\發\mc.c(127): error C2233: “friends”: 包含大小為零的陣列的物件陣列是非法的
1>c:\users\11582\documents\visual studio 2010\projects\發\發\mc.c(153): error C2233: “friends”: 包含大小為零的陣列的物件陣列是非法的
1>c:\users\11582\documents\visual studio 2010\projects\發\發\mc.c(167): warning C4013: “dnew”未定義;假設外部回傳 int
========== 生成: 成功 0 個,失敗 1 個,最新 0 個,跳過 0 個 ==========
uj5u.com熱心網友回復:
就按照提示改就好,比如第八行少了分號;uj5u.com熱心網友回復:
按順序修改,如果存在多個語法錯誤,很可能后面會報一堆不相干的錯誤,按順序先排除語法錯誤。uj5u.com熱心網友回復:
1.第8行 char *NAME[30]少了個分號,另外這種方式很奇怪 直接char NAME[30]就行了吧。2.void dnew(struct ml friends[]) 這個新建函式的本意是要輸入30個學生的資訊嗎,可是函式體內并沒有回圈陳述句,count++沒啥意義
uj5u.com熱心網友回復:
有時候遇到問題實在解決不了可以試試一段一段屏蔽,這方法我就用過一次,多執行緒出現了死鎖,把自己坑死了轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/58128.html
標籤:C語言
下一篇:MATLAB差分方程實作
