Witam! bawię się w programowanie od może miesiąca i dostałem zadanie utworzenia kalkulatora, opartego na instrukcji switch który miał wyglądać tak
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
float liczba, akumulator;
char znak;
do
{
scanf ("%f %c",&liczba ,&znak);
switch (znak)
{
case 'S':
akumulator=liczba;
printf ("ustawiono akumulator na %f\n", akumulator);
break;
case '+':
akumulator=akumulator + liczba;
printf ("=%f\n", akumulator);
break;
case '-':
akumulator=akumulator -liczba;
printf ("=%f\n", akumulator);
break;
case 'E':
printf ("wyjscie z programu\n");
break;
case '*':
akumulator=akumulator*liczba;
printf ("=%f\n", akumulator);
break;
case '/':
akumulator=akumulator/liczba;
printf ("=%f\n", akumulator);
break;
}
}
while (znak!='E');
return 0;
}
wszystko działa pięknie tak jak chciałem, ale chcę dodać również sprawdzenie czy uzytkownik nie wpisał dzielenia przez 0 więc dodaje coś takiego
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
float liczba, akumulator;
char znak;
do
{
scanf ("%f %c",&liczba ,&znak);
if ( (znak = '/') && (liczba = 0) )
{
printf ("nie dziel przez 0");
}
else
switch (znak)
{
case 'S':
akumulator=liczba;
printf ("ustawiono akumulator na %f\n", akumulator);
break;
case '+':
akumulator=akumulator + liczba;
printf ("=%f\n", akumulator);
break;
case '-':
akumulator=akumulator -liczba;
printf ("=%f\n", akumulator);
break;
case 'E':
printf ("wyjscie z programu\n");
break;
case '*':
akumulator=akumulator*liczba;
printf ("=%f\n", akumulator);
break;
case '/':
akumulator=akumulator/liczba;
printf ("=%f\n", akumulator);
break;
}
}
while (znak!='E');
return 0;
}
i teraz za każdym działaniem pokazuje mi "=inf", czyli wszystko szlag trafił! :D
może mi ktoś powiedzieć, gdzie popełniam błąd?