Fiskalni porezi

Autor zadatka: Milena Počuča <milenapocuca@uns.ac.rs>

Izračunati ukupni račun koji kupac treba da plati ukoliko se svi artikli unose kroz terminal. Sa standardnog ulaza (terminala) učitati broj artikala, kao i njihove cene kao celobrojne vrednosti. Maksimalan broj artikala za unos je 30. Nakon toga, uneti granicu za oporezivanje svakog artikla kao celobrojnu vrednost. Artikli čija je cena manja od granične cene se ne oporezuju, dok se ostali artikli oporezuju. Uneti visinu poreza koju je potrebno primeniti na artikle. Visina poreza predstavlja procentulano uvećanje cene svakog artikla koji se oporezuje. Na standardni izlaz (terminal) ispisati cene artikala posle poreza, ukupan račun pre poreza, kao i ukupan račun posle poreza.

Primer interakcije sa programom:

Unesite broj artikala:5
Unesite cenu svakog artikla:
artikal[0]=125
artikal[1]=148
artikal[2]=245
artikal[3]=325
artikal[4]=189
Unesite granicu za oporezivanje:200
Unesite visinu poreza:25

Cene posle poreza su: 
artikal[0] = 125.00
artikal[1] = 148.00
artikal[2] = 306.25
artikal[3] = 406.25
artikal[4] = 189.00

Ukupan racun pre poreza je 1032.

Ukupan racun posle poreza je 1174.50.

Primer rešenja

 1#include <stdio.h>
 2
 3#define MAX_SIZE 30
 4
 5int main() {
 6    int niz[MAX_SIZE], i, n, granica, porez;
 7
 8    do {
 9        printf("Unesite broj artikala:");
10        scanf("%d", &n);
11    } while (n < 0 || n > MAX_SIZE);
12
13    printf("Unesite cenu svakog artikla:\n");
14    for(i=0;i<n;i++) {
15        printf("artikal[%d]=", i);
16        scanf("%d", &niz[i]);
17    }
18
19    do {
20        printf("Unesite granicu za oporezivanje:");
21        scanf("%d", &granica);
22    } while (granica <= 0);
23    
24    do {
25        printf("Unesite visinu poreza:");
26        scanf("%d", &porez);
27    } while (porez <= 0);
28
29    double cenaSaPorezom = 1.0 + porez/100.0;
30
31    float oporezovani[MAX_SIZE];
32
33    int cenaPrePoreza = 0;
34
35    float cenaPoslePoreza = 0.0;
36
37    for(i=0;i<n;i++) {
38        if(niz[i] >= granica) {
39            oporezovani[i] = niz[i] * cenaSaPorezom;
40        } else {
41            oporezovani[i] = niz[i];
42        }
43        cenaPrePoreza += niz[i];
44        cenaPoslePoreza += oporezovani[i];
45    }
46
47    printf("\nCene posle poreza su: \n");
48    for(i=0;i<n;i++) {
49        printf("artikal[%d] = %.2f\n", i, oporezovani[i]);
50    }
51
52    printf("\nUkupan racun pre poreza je %d.\n", cenaPrePoreza);
53    printf("\nUkupan racun posle poreza je %.2f.\n", cenaPoslePoreza);
54
55    return 0;
56}