/********************************************************************* *ohjelma, jossa lasketaan kymmenen Suomen kaupungin lämpötilojen keskiarvo. *Lisäksi ohjelmassa lasketaan koko maan ”karkea” keskiarvo annettujen lämpötilalukemien perusteella. *Tekijä: Jarno Kurlin *Ryhmä: Tie07a *PVM: 08.10.2007 **********************************************************************/ #include #include #include #define TAULUKOKO 11 int main(void) { setlocale(LC_ALL, "Finnish"); double KAUPLKM[TAULUKOKO]; double LÄMMÖT[TAULUKOKO]; double maankeskiarvo,ka_summa,lampotila,kaup_ka; /*koko maan keskiarvo, kaupunkien lämpötilojen summa keskiarvoa varten, kaupungin lämpötila, yksittäisen kaupungin keskiarvo*/ int i,kaupunki,nollaus,jakaja; printf("**Ohjelma laskee syöttämiesi kaupunkien lämpötilojen keskiarvon sekä koko maan karkean keskiarvon **\n\n"); printf("Syötä kaupungin numero jonka lämpötilan haluat ilmoittaa: \n1 – Helsinki\n2 – Kuopio\n3 – Lahti\n4 – Lappeenranta\n5 – Maarianhamina\n6 – Mikkeli\n7 – Oulu\n8 – Rovaniemi\n9 – Savonlinna\n10 – Turku\n"); kaupunki = 1; ka_summa = 0; maankeskiarvo = 0; jakaja = 0; for (nollaus = 0; nollaus < TAULUKOKO; nollaus++) /*Nollataan taulut*/ { LÄMMÖT[nollaus] = 0; KAUPLKM[nollaus] = 0; } while ( kaupunki != 99) { printf("Syötä Kaupungin numero: "); scanf("%d",&kaupunki); switch (kaupunki) { case 0: printf("1 – Helsinki\n2 – Kuopio\n3 – Lahti\n4 – Lappeenranta\n5 – Maarianhamina\n6 – Mikkeli\n7 – Oulu\n8 – Rovaniemi\n9 – Savonlinna\n10 – Turku\n"); break; case 1: printf("***Syötä Helsingin %0.0lf. lämpötila: ", KAUPLKM[kaupunki]+1); scanf("%lf",&lampotila); LÄMMÖT[kaupunki] = LÄMMÖT[kaupunki] + lampotila; KAUPLKM[kaupunki]++; break; case 2: printf("***Syötä Kuopion %0.0lf. lämpötila: ", KAUPLKM[kaupunki]+1); scanf("%lf",&lampotila); LÄMMÖT[kaupunki] = LÄMMÖT[kaupunki] + lampotila; KAUPLKM[kaupunki]++; break; case 3: printf("***Syötä Lahden %0.0lf. lämpötila: ", KAUPLKM[kaupunki]+1); scanf("%lf",&lampotila); LÄMMÖT[kaupunki] = LÄMMÖT[kaupunki] + lampotila; KAUPLKM[kaupunki]++; break; case 4: printf("***Syötä Lappeenrannan %0.0lf. lämpötila: ", KAUPLKM[kaupunki]+1); scanf("%lf",&lampotila); LÄMMÖT[kaupunki] = LÄMMÖT[kaupunki] + lampotila; KAUPLKM[kaupunki]++; break; case 5: printf("***Syötä Maarianhaminan %0.0lf. lämpötila: ", KAUPLKM[kaupunki]+1); scanf("%lf",&lampotila); LÄMMÖT[kaupunki] = LÄMMÖT[kaupunki] + lampotila; KAUPLKM[kaupunki]++; break; case 6: printf("***Syötä Mikkelin %0.0lf. lämpötila: ", KAUPLKM[kaupunki]+1); scanf("%lf",&lampotila); LÄMMÖT[kaupunki] = LÄMMÖT[kaupunki] + lampotila; KAUPLKM[kaupunki]++; break; case 7: printf("***Syötä Oulun %0.0lf. lämpötila: ", KAUPLKM[kaupunki]+1); scanf("%lf",&lampotila); LÄMMÖT[kaupunki] = LÄMMÖT[kaupunki] + lampotila; KAUPLKM[kaupunki]++; break; case 8: printf("***Syötä Rovanimen %0.0lf. lämpötila: ", KAUPLKM[kaupunki]+1); scanf("%lf",&lampotila); LÄMMÖT[kaupunki] = LÄMMÖT[kaupunki] + lampotila; KAUPLKM[kaupunki]++; break; case 9: printf("Syötä Savonlinnan %0.0lf. lämpötila: ", KAUPLKM[kaupunki]+1); scanf("%lf",&lampotila); LÄMMÖT[kaupunki] = LÄMMÖT[kaupunki] + lampotila; KAUPLKM[kaupunki]++; break; case 10: printf("Syötä Turun %0.0lf. lämpötila: ", KAUPLKM[kaupunki]+1); scanf("%lf",&lampotila); LÄMMÖT[kaupunki] = LÄMMÖT[kaupunki] + lampotila; KAUPLKM[kaupunki]++; break; case 99: /*Pois switchin sisältä*/ break; default: printf("\nVäärä valinta, tulosta kaupunkilistaus syöttämällä 0 tai jatka syöttämällä kaupungin numero: "); break; } } printf("\nKaupunkien keskilämpötilat ovat:\n"); for (i = 1; i < TAULUKOKO; i++) /*tulostetaan kaupunkien keskiarvot*/ { if (LÄMMÖT[i] != 0) /*Tarkastetaan onko kaupungille määritetty yhtään lämpötilaa*/ { kaup_ka = LÄMMÖT[i]/KAUPLKM[i]; printf("%d. %0.2lf\n",i,kaup_ka); ka_summa = kaup_ka + ka_summa; jakaja++; /*Määritetään kuinka monelle kaupungille on annettu lämpötila-arvoja*/ } else { printf("%d. Ei syötettyjä lämpötiloja\n",i); } } maankeskiarvo = ka_summa/jakaja; printf("\n\nlämpötilojen keskiarvo koko maassa on %0.2lf",maankeskiarvo); getch(); return 0; }