Kalkulator - trzeba wpisać dwa razy, aby konsola zareagowała

0

Cześć! Mam problem z kalkulatorem w C#. Kalkukator wysweitla sie w konsoli i ma menu ze switchow w ktorych jest podzial na kolejne switche np. funkcje trygonometryczne. Po wybraniu jednej opcji menu przechodzi do kolejnej listy. problem pojawia sie bo musze wpisywac dwa razy zeby konsola zaregowala. Ponadto w dzialaniach na lcizbach po scanfach wychodza absurdalne wyniki i tez musze wpisywac dana fraze dwa razy.

Program wyglada nastepujaco. Nie jest on skonczony bo amm problem z tymi dzialaniami

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

int x,y,z;

void suma()
{
    int x,y,z, p,q; 
    printf("\n");
    printf("\n");
    printf("Podaj 1 liczbê któr¹ chcesz dodaæ: \n");
    printf("\n");
    scanf(" %i \n",x);
    printf("Podaj 2 liczbê któr¹ chcesz dodaæ: \n");
    scanf(" %i \n",y);
    printf(" %i \n",q);
    printf("\n");
    printf("|--------------------|\n");
    printf("|WYNIK DODAWANIA: %i |\n",x+y);
    printf("|--------------------|\n");
    printf("\n");
}

void roznica()
{ 
 printf("\n");
    printf("|----------------------|\n");
    printf("|WYNIK ODEJMOWANIA: %i |\n",x-y);
    printf("|----------------------|\n");
    printf("\n");
}

void dzielenie()
{
     printf("\n");
    printf("|--------------------|\n");
    printf("|WYNIK DZIELENIA: %i |\n",x/y);
    printf("|--------------------|\n");
    printf("\n");
}

void mnozenie()
{
     printf("\n");
    printf("|--------------------|\n");
    printf("|WYNIK MNOZENIA: %i |\n",x*y);
    printf("|--------------------|\n");
    printf("\n");}

void potega()
{
    printf("\n");
    printf("\n");
    printf("wynik potegowania 2 stopnia: %i \n", x*x);
    printf("wynik potegowania 3 stopnia: %i \n", x*x*x);
    printf("\n");
    printf("\n");
}
/*
void pierwiastek()
{
z= sqrt(8); 
printf("wynik pierwiastkowania 2 stopnia: %g \n", z); 
  printf("wynik pierwiastkowania 3 stopnia: %g \n", sqrt(z));
}
*/



int
main() {
int wybierz1;
int wybierz;
while(wybierz<6)
{

printf(" \n");
printf(" \n");
printf("==MENU G£OWNE==\n");
printf("----------------\n");
printf("1. Dzialania podstawowe(+,-,*,:)\n");
printf("2. Odejmowanie\n");
printf("3. Mnozenie\n");
printf("4. Dzielenie\n");
printf("5. Potegowanie\n");
printf("6. Koniec programu\n");
printf(" \n");
printf("Wybierz dzialanie z menu: \n");
scanf("%i ", &wybierz);


switch(wybierz)
{
    case 1:
    {
    while(wybierz1<15)
    {
    printf(" \n");
    printf(" \n");
    printf("==MENU DZIALAN PODSTAWOWYCH==\n");
    printf("-----------------------------\n");
    printf("11. DODAWANIE\n");
    printf("12. ODEJMOWANIE\n");
    printf("13. MNOZENIE\n");
    printf("14. DZIELENIE\n");
    printf("15. POWROT\n");
    printf(" \n");
printf("Wybierz dzialanie z menu: \n");
scanf("%i ", &wybierz1);

    switch(wybierz1)
    {
        case 11:
        { 
        suma();}
    break;
    
    case 12:
        {roznica();}
    break;
    
    case 13:
        {mnozenie();}
    break;
    
    case 14:
        {dzielenie();}
    break;
    
    case 15:
    {}
    }
    }
    }
        break;
        
     case 2:
     {
        roznica();
     }  
        break;
        
     case 4:
     {
        dzielenie();
     }
        break;
        
     case 3:
     {  mnozenie();}
        break;
        
     case 5:
     { potega();}
        break;
        
     case 6:
     { exit(0);}
    break; 
     
    default: printf("nie ma takiej opcji w menu");

}

}



return 0;


}
0

Dobra inaczej bo haosu narobiłem.

screenshot-20170224150359.png
Chodzi o to jak mogę poprawić by działało to poprawnie. Oczywiście chodzi o język C.

0

Po co zmienne globalne x, y, z? staraj się tego unikać.
Czy mi się zdaje, czy screen i kod programu nie zgadzają się?

 printf(" \n");
printf(" \n");
printf("==MENU G£OWNE==\n");
printf("----------------\n");
printf("1. Dzialania podstawowe(+,-,*,:)\n");
printf("2. Odejmowanie\n");
printf("3. Mnozenie\n");
printf("4. Dzielenie\n");
printf("5. Potegowanie\n");
printf("6. Koniec programu\n");
printf(" \n");
printf("Wybierz dzialanie z menu: \n");
scanf("%i ", &wybierz);

title

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