0
       struct contact
       {
       char name[20],email[20];
       int hpnum;
       }add;
   int option;

       int main (void)
       {
    system("cls");
    printf("==========Welcome to Jeffery's Contact System Management==========\n");
    printf("\t\t\tContact System Main Menu\n");
    printf("[1] Create a New Contact\n");
    printf("[2] Modified Existing Contact\n");
    printf("[3] Delete Existing Contact\n");
    printf("[4] Search Existing Contact\n");
    printf("[5] Exit\n");
    printf("Please enter one of your option.\n");
    scanf("%d",option);

    switch(option)
    {
        //add new contact
        case 1:
        printf("Contact Name: ");
        scanf("%s",&add.name);
        printf("\nHandphone Number: ");
        scanf("%d",&add.hpnum);
        printf("\nE-mail: ");
        scanf("%s",add.email);
        break;
    }

getch();
    }

这个编码有什么问题?我可以运行它,但一旦选择否。1、有错误。如果我的编码错误,请通知我。我还是个初学者,希望大家能帮帮我。

4

2 回答 2

1

您忘记在选项变量ampersand &之前添加。

 scanf("%d",option);

应该

 scanf("%d",&option);

option 是一个 int,所以这里需要&在 scanf 中。

第二:&符号需要在add.name之前删除

 scanf("%s",&add.name)

应该

 scanf("%s",add.name)

add.name是我们不需要的字符&数组%s

于 2013-02-27T20:32:28.630 回答
0

fflush(stdout);在这两个语句之间添加一个:

    printf("Contact Name: ");
    scanf("%s",&add.name); 

与您的其他printf不以\n字符结尾的语句相同。

并且对于信息s转换说明符需要一个指针,char所以不要使用&运算符而只需调用scanf("%s", add.name).

于 2013-02-27T20:23:00.393 回答