koniec pracy programu w dowolnym momencie

0

Proszę o pomoc, bo patrzę i na ten kod i błędu nie widzę, chciałabym aby po wciśnięciu litery "b" program zakończył pracę, ale niestety tak nie jest, po wciśnięciu "b" wywołuje mi się funkcja "getOperansAndExecute".

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

void menu() {
      printf("Select!\n");
      printf(" [+]-addition \n [-]-subtraction \n [*]-multiplication \n [b] exit\n");
      }
int add(int a, int b) {
     int add = a + b;
     }
int sub(int a, int b) {
     int sub = a - b;
    }
int mul(int a, int b) {
   int mul = a * b;
   }
int getOperansAndExecute(char funktion) {
   printf("enter two digits\n");
   }
void print(int a) {
   printf("resul: %d\n", a);
   }

int main()
  {  
    int b, a;
    char z;
    menu();
    scanf("%c", &z); 
    if('z' != 'b') {
        getOperansAndExecute(a);
        scanf("%d %d", &a, &b );
   
        switch(z)
        
            {
                case '+':
                z = add(a, b);
		print(z);
                break; 
 
            case '-':
                z = sub(a,b);
                print(z);
                break;
 
            case '*':
                z =mul(a,b);
                print(z);
                break;
              } 
             }
   else
return 0;} 
2

if('z' != 'b')
Czyli jeśli literka z nie jest literką b. Nigdy nie jest. Więc warunek jest spełniony. Pewnie chciałeś tam użyć zmiennej?

0

Wstaw kolejnego case'a który wywoła np. exit(0) gdy zostanie wciśnięte 'b', zamiast porównywać literki.

1

Plus, ehm:

int add(int a, int b) {
     int add = a + b;
     }

Może masz jakieś przyzwyczajenie z Pascala, ale w C do zwracania wykorzystuje się return ...;.

1 użytkowników online, w tym zalogowanych: 0, gości: 1