2017-01-25 5 views
1

Wenn ich in meinem Menü drücken, dann gebe ich einige Zahlenwert, dann das Programm funktioniert gut, aber wenn ich einen Buchstaben Wert eingeben, dann Programm stoppt nie, wo ist mein Fehler? Ich bin Anfänger in c, vielleicht kann jemand helfen, dieses Problem zu lösen. Ich habe diesen Code:Einige Probleme mit c-Code

#include <stdio.h> 
#include <curses.h> 

int a[15], top = -1; 

void push (int value) 
{ 
    if (top == 14) 
    { 
     printf("Stack is full"); 
    } 
    else{ 
     top = top + 1; 
     a[top] = value; 
    } 
} 

void pop() 
{ 
    if (top == -1) 
    { 
     printf("Stack is empty"); 
    } 
    else 
    { 
     top = top - 1; 
    } 
} 


void display() 
{ 
    int i; 
    if (top == -1) 
    { 
     printf("\n Nothing to display"); 
    } 
    else 
    { 
     printf("\nArray is:\n"); 
     for (i=0; i<=top; i++) 
     { 
      printf("%d\n", a[i]); 
     } 
    } 
} 


int main() 
{ 
    int choice, value; 
    do{ 
     printf("\n1.Push :"); 
     printf("\n2.POP :"); 
     printf("\n3.Display :"); 
     printf("\n4.Exit :"); 
     printf("\nEnter your Choice:"); 
     scanf("%d", &choice); 

     if(choice == 1) 
     { 
      printf("\nEnter Value to be inserted: "); 
      scanf("%d", &value); 
      push(value); 
     } 

     if(choice == 2) 
     { 
      pop(); 
     } 

     if (choice == 3) 
     { 
      display(); 
     } 

    } 
    while (choice !=4); 
    getch(); 

    return 0; 
} 
+0

Ihre Push-Funktion nimmt 'int' Wert, warum drücken Sie ein' char' –

+0

@MiteshPant in dieser Zeile 'void push (int Wert)' Ich ändere von int in char, aber das gleiche Problem. In diesem Teil muss ich Buchstaben und Zahlen zusammen eingeben, also brauche ich char, schreibe? –

+0

Sie müssen die Eingabe in char wie '(char) input' umwandeln und char als Push-Parameter vom Typ –

Antwort

1

Sie müssen zwei Dinge work.First für Ihren Code ändern, um die folgenden Variablen auf Zeichen ändern

char a[15]; 
char value; 

plus Sie brauchen auch eine charater an die Funktion übergeben keine ganze Zahl.

Verwandte Themen