Celzijusi, Farenhajti, Kelvini

Autor zadatka: Rade Radišić <radisic.rade@uns.ac.rs>

Napisati program u kom korisnik učitava u niz od 30 realnih elemenata n vrednosti (u granicama veličine niza) temperatura u stepenima celzijusa. Preračunati unete vrednosti u stepene farenhajta i kelvina i dobijene vrednosti smestiti u dva zasebna niza. Ispisati vrednosti sva tri niza tako da u redu budu sukcesivno navedene vrednosti stepeni celzijusa, farenhajta i kelvina. Ispisati zaglavlje tabelarnog prikaza i konkretne vrednosti odvojiti crticama (pogledati primer rada programa). Za ispis nizova koristiti format string u obliku "%5.1lf %5.1lf %5.1lf\\n". Izračunati srednje vrednosti nizova i ispisati srednje vrednosti svakog niza. Odvojiti srednje vrednosti istim redom crtica koje su korišćene za razdvajanje zaglavlja i vrednosti niza (pogledati primer rada programa).

Formula za konverziju iz stepena Celzijusa u stepene Farenhajta:

\[T_F = (T_C * 1.8) + 32\]

Formula za konverziju iz stepena Celzijusa u stepene Kelvina:

\[T_K = T_C + 273.15\]

Primer rada programa:

Unesite broj elemenata: 7
tempc[0] = 34
tempc[1] = 21.7
tempc[2] = 14.3
tempc[3] = 40.4
tempc[4] = 8
tempc[5] = -14.3
tempc[6] = 1.9

T[C]  T[F]  T[K]
------------------
 34.0  93.2 307.1
 21.7  71.1 294.8
 14.3  57.7 287.4
 40.4 104.7 313.5
  8.0  46.4 281.1
-14.3   6.3 258.8
  1.9  35.4 275.0
------------------
 15.1  59.3 288.3

Primer rešenja

 1#include <stdio.h>
 2#include <string.h>
 3
 4#define MAX_NIZ 30
 5
 6int main() {
 7    double tempc[MAX_NIZ], tempf[MAX_NIZ], tempk[MAX_NIZ];
 8    double sumac = 0, sumaf = 0, sumak = 0;
 9    double srvrc, srvrf, srvrk;
10    int i, n;
11
12    do {
13        printf("Unesite broj elemenata: ");
14        scanf("%d", &n);
15    } while(n <= 0 || n > MAX_NIZ);
16
17    for(i = 0;i < n;i++) {
18        printf("tempc[%d] = ", i);
19        scanf("%lf", &tempc[i]);
20    }
21
22    for(i = 0;i < n;i++) {
23        tempf[i] = (tempc[i] * 1.8) + 32;
24        tempk[i] = tempc[i] + 273.15;
25    }
26
27    for(i = 0;i < n;i++) {
28        sumac += tempc[i];
29        sumaf += tempf[i];
30        sumak += tempk[i];
31    }
32
33    srvrc = sumac / n;
34    srvrf = sumaf / n;
35    srvrk = sumak / n;
36
37    printf("\nT[C]  T[F]  T[K]\n");
38    printf("------------------\n");
39
40    for(i = 0;i < n;i++) {
41        printf("%5.1lf %5.1lf %5.1lf\n", tempc[i], tempf[i], tempk[i]);
42    }
43
44    printf("------------------\n");
45    printf("%5.1lf %5.1lf %5.1lf\n", srvrc, srvrf, srvrk);
46
47    return 0;
48}
49