/*Tee ohjelma, jossa lasketaan kymmenen Suomen kaupungin lämpötilojen keskiarvo.
Lisäksi ohjelmassa lasketaan koko maan karkea keskiarvo annettujen lämpötilalukemien perusteella.
Käyttäjä syöttää päätteeltä Suomen eri kaupunkien lämpötilalukemia. Kussakin kaupungissa on useita mittauspisteitä ja
näin ollen joka kaupungista saadaan useita mittauslukemia (esim. Lahdessa Launeen lämpötila ja keskustan lämpötila).
Käyttäjä antaa päätteeltä kaupungin tunnuksen, joka on joku luvuista 1 10.
Virheellisestä kaupunkitunnuksesta annetaan virheilmoitus. Kaupunkitunnusten merkitykset ovat seuraavat:
1 Helsinki
2 Kuopio
3 Lahti
4 Lappeenranta
5 Maarianhamina
6 Mikkeli
7 Oulu
8 Rovaniemi
9 Savonlinna
10 Turku
Kaupungin tunnuksen jälkeen käyttäjä antaa päätteeltä ao. kaupungin mittauslukeman (= yhden kaupungissa olevan
mittauspisteen lukema).
Päätteeltä annettavat syöttötiedot tulkitaan loppuneiksi, kun ohjelman käyttäjä antaa kaupungin tunnukseksi 99.
Päätteeltä annettavien lähtötietojen joukko voisi olla esimerkiksi:
Kaupunki Lämpötila
3 -3.2
1 -3.0
2 10
7 -15
:
3 -3.9
99 99
Ratkaisussa käytetään apuna kahta 1-ulotteista taulukkoa LÄMMÖT[10] ja KAUPLKM[10]. Kymmenalkioiseen LÄMMÖT-taulukkoon lasketaan kunkin kaupungin lämpötilojen summaa ja KAUPLKM-taulukkoon kunkin kaupungin mittauspisteiden lukumäärä (mittauspisteiden lukumäärä voi vaihdella kaupungeittain ohjelman käyttökerrasta toiseen). Toisin sanoen indeksissä 0 molemmissa taulukoissa on Helsingin tietoja, indeksissä 1 Kuopion laskurit, jne.
Ohjelman pääosat ovat seuraavat:
· alkuarvojen asetukset
· luetaan tietoja niin kauan kun niitä riittää ja kasvatetaan vastaavan kaupungin KAUPLKM- ja LÄMMÖT-taulukon alkioita
· lasketaan kaupunkien lämpötilojen keskiarvot
· lasketaan maan keskiarvo
· tulostetaan lasketut tulokset.
Mieti myös mitä tapahtuu, jos KAUPLKM-taulukon johonkin alkioon jää arvo 0 (eli jonkin kaupungin mittauspisteitä ei käydä lukemassa). */
#include <stdio.h>
#define LAMMOT_ARVO 10
#define KAUPLKM_ARVO 10
void KysyTunnus(void);
int main()
{
KysyTunnus();
}
void KysyTunnus(void)
{
int i,j;
int luku;
float lmptila=0;
float LAMMOT[LAMMOT_ARVO];
float KAUPLKM[KAUPLKM_ARVO];
int tunnus=0;
do
{
printf("Anna kaupungin tunnus (1-10) (99 lopettaa)\n");
scanf ("%d", &tunnus);
tunnus--;
if (tunnus > 9)
{
printf("Annoit v\x84\x84r\x84n tunnuksen (%d)\n",tunnus);
}
else
{
int keskiarvo=0;
float ka=0;
for (i=0; i<10; i++)
{
int luku=0;
printf("Anna l\x84mp\x94tila:\n");
if (i==0) { printf(" (99 lopettaa)\n"); }
scanf("%d", &luku);
keskiarvo+=luku;
if (luku == 99) { i=99; } // lopetetaan lämpötilojen kysely
}
ka = keskiarvo/i;
printf("T\x84m\x84n kaupungin keskiarvo on %.2f\n",ka);
printf("(keskiarvo/i = %d/%d = %.2f)",keskiarvo,i,ka);
getch();
}
} while (tunnus == 99);
}