2016-06-29 8 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; 
    } 

Dies ist ein Programm, um Ihren Eintrag in einer Show zu überprüfen. Zuerst geben wir erlaubte Namen & dann fragt es Ihren Namen, es vergleicht Ihren Namen mit den Namen in der Gästeliste.Grund für Laufzeitfehler in meinem c-Programm &?

im Laufzeitfehler bekommen, PLZ erklären mir die correction.i wollen so Zeiger auf Zeichenfolge verwenden plz Korrektur vorschlagen in das bestehende Programm

, wenn ich dieses Programm in DEVC laufen ++ nach der ersten Eingabe nennen es gibt program.exe aufgehört zu arbeiten.

+1

Sie initialisieren nie Ihre Zeiger 'names' oder' yourname', so dass sie Müll sind. Außerdem benötigt Ihre Schleife geschweifte Klammern und beginnen Sie Ihren Code einzunicken, damit er besser lesbar wird. –

+0

Sie haben schlecht formatierten Code verloren, ohne uns den Fehler mitzuteilen. Bitte beheben Sie dies, um eine Antwort zu erhalten. –

+0

machen Sie bitte Korrektur in meinem Code –

Antwort

0

Der Code wird wie folgt sein:

#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

vielen dank sir –

0

Ihr Code formatiert werden müssen, damit wir Ihnen eine bessere Antwort geben.

Jetzt wird verwendet, um Ihre Eingabe zu nehmen, überprüfen Sie die Gast Übereinstimmung mit Ihrem Namen innerhalb der for-Schleife, stoppen Sie die Schleife, wenn eine Übereinstimmung gefunden wird.

#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; 
} 

Obwohl dies wie eine Hausaufgabe aussieht.