All pastes #768373 Raw Edit

Miscellany

public cpp v1 · immutable
·published 2007-11-10 15:41 UTC
rendered paste body
/*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ä janä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 ? Helsinki2 ? Kuopio3 ? Lahti4 ? Lappeenranta5 ? Maarianhamina6 ? Mikkeli7 ? Oulu8 ? Rovaniemi9 ? Savonlinna10 ? TurkuKaupungin tunnuksen jälkeen käyttäjä antaa päätteeltä ao. kaupungin mittauslukeman (= yhden kaupungissa olevanmittauspisteen 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ötila3 -3.21 -3.02 107 -15:3 -3.999 99Ratkaisussa 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 10void KysyTunnus(void);void TulostaKeskiarvot(void);float LAMMOT[LAMMOT_ARVO];float KAUPLKM[KAUPLKM_ARVO];int main(){    KysyTunnus();    TulostaKeskiarvot();}void KysyTunnus(void){    int i,j;    int luku;    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+1);        }        else        {            printf(" (99 lopettaa)\n");            float keskiarvo=0;            for (i=0; i<10; i++)            {                int luku=0;                printf("Anna l\x84mp\x94tila:\n");                scanf("%d", &luku);                if (luku == 99)                {                    break;                }                else                    keskiarvo+=luku;            }            keskiarvo = keskiarvo/i;            printf("T\x84m\x84n kaupungin keskiarvo on %.2f\n",keskiarvo);            LAMMOT[tunnus]  = keskiarvo;            KAUPLKM[tunnus] = i;        }    }    while (tunnus == 99);}void TulostaKeskiarvot(void){    int tunnus=0;    for (tunnus=0; tunnus<10; tunnus++)    {        printf("Kaupungin %d keskiarvo: %.2f\n",tunnus+1,LAMMOT[tunnus]);    }}