2016-06-29 11 views
0
 #include<stdio.h> 
     main() 
     {char *names[4]; 
     int i,a; 
     printf("ënter the guests names\n"); 
       for(i=0;i<=3;i++) 
       { 
       scanf("%s",names[i]); 
       } 
     char *yourname; 
     printf("\nenter your name "); 
     scanf("%c",yourname); 
        for(i=0;i<=3;i++) 
         {a=strcmp(names[i],yourname); 
         if(a==0) 
         printf("\nwelcome"); 
         break; 
         } 
    if(a!=0) 
    printf("\naccess denied"); 
    return 0; 
    } 

これはショーであなたのエントリーをチェックするプログラムです。最初に許可された名前を与えます&あなたの名前を尋ねると、あなたの名前とゲストリストの名前が比較されます。ランタイムエラーを取得私のCプログラムのランタイムエラーの理由&?

イム、plzは私はDEVCでこのプログラムを実行する++最初の名前を入力した後、それはPROGRAM.EXEを与えるときに、既存のプログラム

に修正を示唆してplzはcorrection.iは、文字列へのポインタを使用したい教えてください動作を停止。

+1

あなたは 'names'または' yourname'ポインタを初期化してゴミにならないようにします。さらに、ループに中カッコが必要で、コードのインデントを開始してください。読みやすくなります。 –

+0

フォーマットされていないコードをダンプしても、エラーが表示されることはありません。答えを得るためにこれを修正してください。 –

+0

親切に私のコードで訂正してください –

答えて

0

コードは次のようになります。

#include <stdio.h> 
    #include <string.h> 
    #include <stdlib.h> 

    int main() 
    { 
     char *names[4]; 
     int i,a; 
     printf("ënter the guests names\n"); 
     for(i=0;i<=3;i++) { 
       names[i] = (char*) malloc(100 * sizeof(char)); 
      scanf("%s", names[i]); 
     } 
     char yourname[100]; 
     printf("\nenter your name "); 
     scanf("%s",yourname); 
     for(i=0;i<=3;i++) { 
      a = strcmp(names[i], yourname); 
      if (a == 0) break; 
     } 
     if (a==0) 
      printf("\nwelcome"); 
     else printf("\naccess denied"); 

     for(i=0;i<=3;i++) 
      free(names[i]); 

     return 0; 
    } 
+0

ありがとうございました –

0

あなたのコードでは、私たちはあなたのより良い答えを与えることができるようにフォーマットされる必要があります。

ここで、getsを使用して入力を受け取り、forループ内であなたの名前と一致するゲストを確認し、一致が見つかったらループを停止します。

#include<stdio.h> 
#include<string.h> 
int main() 
{ 
    char names[4][20]; 
    int i = 0; 
    int a = 0; 
    printf("Enter guests names: \n"); 

    for(i=0; i<3; i++) 
    { 
     gets(names[i]); 
    } 
    char yourname[20]; 
    printf("\n Enter your name "); 
    gets(yourname); 

    printf("\n Verify access right:"); 
    for(i=0; i<3; i++) 
    {  
     a=strcmp(names[i], yourname); 
     if(a==0) 
     { 
      printf("\n welcome"); 
      break; 
     } 
     else 
     { 
      printf("\n access denied"); 
     } 
    } 

    return 0; 
} 

これは宿題のようですが。

関連する問題