I am new in programming so I took a easy problem, to make simple calculator with 5 functions. I made it and code is:
//zadatak je bio da napravim prost kalkulator sa par funkcija (oduzimanje, deljenje...)
//mislim da je problem posto on ne uporedjuje unetu promenjivu kao vrednost u oktalnom brojnom sistemu
#include <stdio.h>
#include <math.h> //moram posto imam koren
float broj1, broj2; //definisanje dve promenjive koje cu koristiti u kodu
char odluka; //definisanje promenjive koja ce mi oznacavati odluku, ne smem da koristim stringove za tekst
int main()
{
printf("Ako zelite da saberete dva broja unesite 1, da oduzmete unesite 2, da pomnozite unesite 3,da podelite unesite 4 ida izvadite koren unesite 5. Broj ne mora biti ceo!\n");
scanf("%c",&odluka);
if(odluka=='1') //pitamo da li je vrednost odluke jednaka jedinici
{ //blok komandi za unos i za ispisivanje zbira ako je odluka jednaka jedinici
printf("Unesite prvi broj:\n");
scanf("%f",&broj1);
printf("Unesite drugi broj:\n");
scanf("%f",&broj2);
printf("Zbir Vasa dva broja je: %.2f\n", (float)broj1+broj2);
}
else if(odluka=='2') //ako nije onda pitamo da li je jednaka dvojci
{ //blok komandi za unos i za ispisivanje razlike ako je odluka jednaka dvojci
printf("Unesite prvi broj:\n");
scanf("%f",&broj1);
printf("Unesite drugi broj:\n");
scanf("%f",&broj2);
printf("Razlika Vasa dva broja je: %.2f\n", (float)broj1-broj2);
}
else if(odluka=='3') //ako nije pitamo da li je jednaka trojci
{ //blok komandi za unos i za ispisivanje proizvoda ako je odluka jednaka trojci
printf("Unesite prvi broj:\n");
scanf("%f",&broj1);
printf("Unesite drugi broj:\n");
scanf("%f",&broj2);
printf("Proizvod Vasa dva broja je: %.2f\n", (float)broj1*broj2);
}
else if(odluka=='4') //ako nije pitamo da li je jednaka cetvorci
{ //blok komandi za unos i za ispisivanje kolicnika ako je odluka jednaka cetvorci
printf("Unesite prvi broj:\n");
scanf("%f",&broj1);
printf("Unesite drugi broj:\n");
scanf("%f",&broj2);
printf("Kolicnik Vasa dva broja je: %.2f\n", (float)broj1/broj2);
}
else if(odluka=='5') //ako nije pitamo da li je jednaka petici
{ //blok komandi za unos i za ispisivanje korena ako je odluka jednaka petici
printf("Unesite broj iz koja zelite da izvucete koren:\n");
scanf("%f",&broj1);
printf("Koren Vaseg broja je: %.3f\n", (float)sqrt(broj1));
}
else //ako nije ni jedan broj od 1 do 5 onda ispisujemo gresku
printf("Niste uneli ispravnu vrednost odluke!\n");
return 0;
}
So I wanted to take it to next level and ask question to repeat it after finishing job. I made this code:
//zadatak je bio da napravim prost kalkulator sa par funkcija (oduzimanje, deljenje...)
//mislim da je problem posto on ne uporedjuje unetu promenjivu kao vrednost u oktalnom brojnom sistemu
#include <stdio.h>
#include <math.h> //moram posto imam koren
float broj1, broj2; //definisanje dve promenjive koje cu koristiti u kodu
char odluka, ponovo; //definisanje promenjive koja ce mi oznacavati odluku, ne smem da koristim stringove za tekst
int main()
{
do
{
printf("Ako zelite da saberete dva broja unesite 1, da oduzmete unesite 2, da pomnozite unesite 3,da podelite unesite 4 ida izvadite koren unesite 5. Broj ne mora biti ceo!\n");
scanf("%c",&odluka);
if(odluka=='1') //pitamo da li je vrednost odluke jednaka jedinici
{ //blok komandi za unos i za ispisivanje zbira ako je odluka jednaka jedinici
printf("Unesite prvi broj:\n");
scanf("%f",&broj1);
printf("Unesite drugi broj:\n");
scanf("%f",&broj2);
printf("Zbir Vasa dva broja je: %.2f\n", (float)broj1+broj2);
printf("Da li zelite ponoviti program? Za da upisite 1, za ne 0.\n\n");
getchar();
scanf("%c", &ponovo);
}
else if(odluka=='2') //ako nije onda pitamo da li je jednaka dvojci
{ //blok komandi za unos i za ispisivanje razlike ako je odluka jednaka dvojci
printf("Unesite prvi broj:\n");
scanf("%f",&broj1);
printf("Unesite drugi broj:\n");
scanf("%f",&broj2);
printf("Razlika Vasa dva broja je: %.2f\n", (float)broj1-broj2);
printf("Da li zelite ponoviti program? Za da upisite 1, za ne 0.\n\n");
getchar();
scanf("%c", &ponovo);
}
else if(odluka=='3') //ako nije pitamo da li je jednaka trojci
{ //blok komandi za unos i za ispisivanje proizvoda ako je odluka jednaka trojci
printf("Unesite prvi broj:\n");
scanf("%f",&broj1);
printf("Unesite drugi broj:\n");
scanf("%f",&broj2);
printf("Proizvod Vasa dva broja je: %.2f\n", (float)broj1*broj2);
printf("Da li zelite ponoviti program? Za da upisite 1, za ne 0.\n\n");
getchar();
scanf("%c", &ponovo);
}
else if(odluka=='4') //ako nije pitamo da li je jednaka cetvorci
{ //blok komandi za unos i za ispisivanje kolicnika ako je odluka jednaka cetvorci
printf("Unesite prvi broj:\n");
scanf("%f",&broj1);
printf("Unesite drugi broj:\n");
scanf("%f",&broj2);
printf("Kolicnik Vasa dva broja je: %.2f\n", (float)broj1/broj2);
printf("Da li zelite ponoviti program? Za da upisite 1, za ne 0.\n\n");
getchar();
scanf("%c", &ponovo);
}
else if(odluka=='5') //ako nije pitamo da li je jednaka petici
{ //blok komandi za unos i za ispisivanje korena ako je odluka jednaka petici
printf("Unesite broj iz koja zelite da izvucete koren:\n");
scanf("%f",&broj1);
printf("Koren Vaseg broja je: %.3f\n", (float)sqrt(broj1));
printf("Da li zelite ponoviti program? Za da upisite 1, za ne 0.\n\n");
getchar();
scanf("%c", &ponovo);
}
else //ako nije ni jedan broj od 1 do 5 onda ispisujemo gresku
{
printf("Niste uneli ispravnu vrednost odluke!\n");
printf("Da li zelite ponoviti program? Za da upisite 1, za ne 0.\n\n");
getchar();
scanf("%c", &ponovo);
}
}
while(ponovo=='1');
return 0;
}
But problem now is that program is doing great job when you first time use it, when it repeats every input for "odluka" which means decision is false and it goes to last else. I am really, really sorry for code in Serbian but I don't have time to translate it. Can you help me, please?