Cześć!
Jestem w trakcie pisania dosyć prostego kalkulatora w języku C. Chciałbym żeby można było na zmiennej WYNIK wykonywać wielokrotnie różne działania wykorzystując zmienna typu bool z biblioteki <stdbool.h>, ale nie wiem jak zainicjować zmianę wartości zmiennej "sprawdzenie", z false na true, gdy wykonujemy już drugie w kolei działanie. Wyobrażam sobie to mniej więcej tak: gdy sprawdzenie będzie miało wartość false zmiennej WYNIK dopiero nadamy jakąś wartość, a gdy sprawdzenie będzie miało wartość true do zmiennej WYNIK będziemy dodawać/odejmować/mnożyć/dzielić/pierwiastkować. Mam nadzieję, że opisałem mój problem w miarę zrozumiale.
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <stdbool.h>
void menu() //menu
{
puts("Menu glowne");
puts("1.Dodawanie");
puts("2.Odejmowanie");
puts("3.Mnozenie");
puts("4.Dzielenie");
puts("5.Pierwiastkowanie");
puts("6.Wyjscie");
}
int main() //main
{ float pierw,pierw1;
int WYNIK; //zmienna do ktorej bede dodawal/odejmowal/dzielil/mnozyl
int wybor,wybor1,num1,num2,zmienna,pierwsza;
bool sprawdzenie = false;
do
{
menu();
scanf("%d",&wybor);
switch(wybor)
{
case 1: //dodawanie
{
system("cls");
puts("//Dodawanie//");
puts("1.Powrot do menu glownego");
puts("2.Rozpocznij dzialanie");
scanf("%d",&wybor1);
if(wybor1 == 1)
{
break;
}
else
{
int ilosc,sum=0;
puts("Ile liczb chcesz dodac?");
scanf("%d",&ilosc);
for(int i=0;i<ilosc;i++)
{
scanf("%d",&zmienna);
sum += zmienna;
}
printf("%d\n",sum);
if(sprawdzenie == 0)
{
WYNIK = sum;
break;
}
else
{
WYNIK += sum;
break;
}
}
}
case 2: //odejmowanie
{
system("cls");
puts("//Odejmowanie//");
puts("1.Powrot do menu glownego");
puts("2.Rozpocznij dzialanie");
scanf("%d",&wybor1);
if(wybor1 == 1)
{
break;
}
else
{
int ilosc,sum=0;
puts("Podaj pierwsza liczbe:");
scanf("%d",&pierwsza);
sum=pierwsza;
puts("Ile liczb chcesz odjac od pierwszej liczby?");
scanf("%d",&ilosc);
for(int i=0;i<ilosc;i++)
{
scanf("%d",&zmienna);
sum -= zmienna;
}
printf("%d\n",sum);
break;
if(sprawdzenie == 0)
{
break;
}
else
{
WYNIK -= sum;
break;
}
}
}
case 3: //mnozenie
{
system("cls");
puts("//Mnozenie//");
puts("1.Powrot do menu glownego");
puts("2.Rozpocznij dzialanie");
scanf("%d",&wybor1);
if(wybor1 == 1)
{
break;
}
else
{
int ilosc,sum=1;
puts("Ile liczb chcesz przemnozyc?");
scanf("%d",&ilosc);
for(int i=0;i<ilosc;i++)
{
scanf("%d",&zmienna);
sum *= zmienna;
}
printf("%d\n",sum);
if(sprawdzenie == 0)
{ WYNIK = sum;
break;
}
else
{
WYNIK *= sum;
break;
}
}
}
case 4: //dzielenie NA KONCU DO POPRAWY
{
system("cls");
puts("//Dzielenie//");
puts("1.Powrot do menu glownego");
puts("2.Rozpocznij dzialanie");
scanf("%d",&wybor1);
if(wybor1 == 1)
{
break;
}
else
{
puts("Podaj pierwsza liczbe");
scanf("%d",&num1);
puts("Podaj druga liczbe");
scanf("%d",&num2);
printf("%d\n",num1/num2);
break;
}
}
case 5: //pierwiastkowanie
{
system("cls");
puts("//Pierwiastkowanie//");
puts("1.Powrot do menu glownego");
puts("2.Rozpocznij dzialanie");
scanf("%d",&wybor1);
if(wybor1 == 1)
{
break;
}
else
{
if(sprawdzenie == 0)
{
puts("Podaj liczbe z ktorej chcesz policzyc pierwiastek");
scanf("%f",&pierw);
puts("Podaj stopien pierwiastka");
scanf("%f",&pierw1);
float wynik = pow(pierw,1.0/pierw1);
printf("%f\n",wynik);
wynik = WYNIK;
break;
}
else
{
puts("Podaj stopien pierwiastka");
scanf("%f",&pierw1);
float WYNIK = pow(WYNIK,1.0/pierw1);
printf("%f\n",WYNIK);
break;
}
}
}
}
}while(wybor!=6);
return 0;
}