//Amerykańska skala podatkowa z roku 1988 była jedną z najprostszych w ostatnich czasach. Składała się ona z czterech kategorii, z których każda zawierała dwie stawki. Oto jej podsumowanie:
stan wolny: 15% dochodu do 17850$ plus 28* reszty;
głowa rodziny:15% dochodu do 23900$ plus 28* reszty;
małżeństwo, rozliczenie wspólne: 15% dochodu do 29750$ plus 28* reszty;
małżeństwo, rozliczanie osobne: 15% dochodu do 14875$ plus 28* reszty;
Na przykład, osoba stanu wolnego, która osiągnęła dochód w wysokości 20000 dolarów, jest winna państwu 0.1517850$+0.28(20000$-17850$). Napisz program, który pobiera kategorię(małżeństwo etc.) i dochód podlegający opodatkowaniu, a następnie oblicza wartość podatku. Użyj pętli tak, aby użytkownik mógł obliczyć podatek dla kilku różnych przypadków w czasie jednej sesji z programem.//
#include <stdio.h>
oblicz_podatek(int stawka,int aa);
double main(double podatek)
{
int kaska,aa,ch;
ZAROBEK:printf("\nPodaj swoj zarobek roczny w dolarach(od 10000tys w zwyz).\n"
"q aby zakonczyc\n\n");
scanf("%d",&aa);
printf("\nWybierz jedna z kategorii opodatkowania:\n"
"1)stan wolny\t2)glowa rodziny\n"
"3)malzenstwo,rozliczna wspolnie\t4)malzenstwo, rozliczane osobno\n");
scanf("%d",&ch);
while(ch!='q')
{
switch(ch)
{
case 1:
{
podatek=oblicz_podatek(17850,aa);
break;
}
case 2:
{
podatek=oblicz_podatek(23900,aa);
break;
}
case 3:
{
podatek=oblicz_podatek(29750,aa);
break;
}
case 4:
{
podatek=oblicz_podatek(14875,aa);
break;
}
default:
{
printf("\nNie ma takiej opcji.\n");
goto ZAROBEK;
}
}
printf("\n\nTwoj podatek wynosi %.2f\n",(double)podatek);
goto ZAROBEK;
}
getchar();
getchar();
return 0;
}
int oblicz_podatek(int stawka,int aa)
{
double podatek;
if(aa<=stawka)
podatek=(0.15*aa);
if(aa>stawka)
podatek=(0.15*(double)stawka)+(0.28*((double)aa-(double)stawka));
return podatek;
}
**Napisałem ten program jw. Program działa normalnie, pyta, z czytuje dane, funkcja poprawnie działa etc..
Problem pojawia się gdy chcę nacisnąć 'q' i zakończyć program. Program się zapętla, wyświetla mi super szybko w infinity ostatnie 6-7+ wersów. Raczej nie popełniłem błędu syntaktycznego lub coś w tym rodzaju bo program działa tylko problemy są przy wyjściu z niego. Może po prostu gdzieś coś źle zrobiłem, albo powinienem skorygować swój pomysł na ten program?
Za wszelkie poprawki, porady i opinie będę wdzięczy.
Z góry dzięki :)**