witam,
dopiero zaczynam swoja przygode z programowaniem.
dostałem do wykonania prosty kalulator oto treść zadania :
4. Napisz program, który działa jako prosty "drukujacy" kalkulator. Program powinien pozwalać uzytkownikowi na wprowadzanie wyrażeń w postaci
liczba operator
Ponizsze operatory powinny być rozpoznawane przez program:
-
- * / S E
Operator S poleca programowi ustawić “akumulator” dla wprowadzonej liczby. Operator E poleca programowi, że działanie ma się zakończyć. Operacje arytmetyczne są wykonywane na zawartości akumulatora z liczbą wprowadzoną jako drugim argumentem. Poniżej podano postać “przykładowego obliczenia” pokazującego jak program powinien działać:
Rozpocznij Obliczenia
10 S Ustaw akumulator na 10
= 10.000000 Zawartość akumulatora
2 / Podziel przez 2
= 5.000000 Zawartość akumulatora
55 - Odejmij 55
-50.000000
100.25 S Ustaw akumulator na 100.25
= 100.250000
4 * Pomnóż przez 4
= 401.000000
0 E Zakończ program
= 401.000000
Koniec Obliczeń.
program wykonałem, i działa w 90% dobrze, lecz chodzi o te 10% :)
#include <stdio.h>
int main ()
{
float a, b;
char znak=0;
printf ("kalkulator\n\n");
while (znak!='E')
{
printf("Wypisz");
scanf("%f%c",&a,&znak);
switch (znak)
{
case 'E':
printf ("koniec programu, koniec obliczen");
break;
case 'S':
b=a;
printf ("ustawiono akumulator na %f \n =%f\n", b,b);
break;
case '+':
b+=a;
printf ("%f\n", b);
break;
case '-':
b-=a;
printf ("%f\n",b);
break;
case '*':
b*=a;
printf ("%f\n", b);
break;
case '/':
if (a==0)
{
printf ("dzielnie przez 0\n");
}
else
{
b/=a;
printf ("%f\n", b);
break;
}
default:
break;
}
}
return 0;
}
chodzi o to, że działają mi funkcje dodawania, mnozenia, odejmowania, ale nie działa mi wyjście z programu. po wpisaniu np "10E" program znowu pokazuje "wypisz". siedzę nad tym od 3 godzin, i nie mogę znaleźć przyczyny. bardzo proszę o pomoc