Mam taki kod:
#include <stdio.h>
#include <stdbool.h>
#define PIERWSZE 0.15 //dla mniejszych badz rownych od 1200
#define KOLEJNE 0.20 // dla wiekszych od 1200 i mniejszych badz rownych 1800
#define RESZTA 0.25 //dla wiekszych od 1800
#define NADGODZINY 1.5
int i_godz, netto, dzialanie, wynagrodzenie;
float podatek, brutto;
bool blad = true;
int main(void)
{
while (blad)
{
printf("*********************************************\n");
printf("1) 35zl/godz 2) 37zl/godz\n");
printf("3) 40zl/godz 4) 45zl/godz\n");
printf("5) wyjscie\n");
printf("*********************************************\n");
scanf("%d", &dzialanie);
switch(dzialanie)
{
case 1 :
wynagrodzenie = 35;
break;
case 2 :
wynagrodzenie = 37;
break;
case 3 :
wynagrodzenie = 40;
break;
case 4 :
wynagrodzenie = 45;
break;
case 5 :
blad = false;
break;
default :
printf("Czytaj dokladnie!");
break;
}
printf("Podaj liczbe przepracowanych godzin\n");
scanf("%d", &i_godz);
if(i_godz<=40)
brutto = (i_godz*wynagrodzenie);
else
brutto = (((i_godz-40)*(wynagrodzenie*NADGODZINY))+(40*wynagrodzenie));
if (brutto <= 1200)
podatek = brutto * PIERWSZE;
if (brutto>1200 && brutto <= 1800)
podatek = (((brutto - 1200) * KOLEJNE) + (1200*PIERWSZE));
if (brutto > 1800)
podatek = (((brutto - 1800) * RESZTA)+(600*KOLEJNE)+(1200*PIERWSZE));
netto = brutto - podatek;
printf("Brutto = %f\n", brutto);
printf("Netto = %d\n", netto);
printf("Podatek = %f\n", podatek);
}
getchar();
return 0;
}
Ma ktoś pomysł, jak ominąć tą niepotrzebną część kodu przy podaniu 5 (wyjscia) lub innego znaku (innego od 1, 2, 3, 4) w instrukcji switch? Nie mam pomysłu jak to zrobić. ;/