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);

オプションはintなので、ここ&ではscanfが必要です。

2番目:アンパサンドはadd.nameの前に削除する必要があります

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

する必要があります

 scanf("%s",add.name)

add.name&は、必要のないchar配列です。%s

于 2013-02-27T20:32:28.630 に答える
0

fflush(stdout);これらの2つのステートメントの間に追加します。

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

文字printfで終わらない他のステートメントと同じです。\n

また、情報s変換の場合、指定子はポインタを期待しているcharため、演算子を使用せずに、&を呼び出すだけscanf("%s", add.name)です。

于 2013-02-27T20:23:00.393 に答える