All pastes #768487 Raw Edit

Something

public c v1 · immutable
·published 2007-11-10 17:41 UTC
rendered paste body
#include <stdio.h>#define LAMMOT_ARVO 10#define KAUPLKM_ARVO 10void KysyTunnus(void);void TulostaKeskiarvot(void);char nimet[10][14]={"Helsinki", "Kuopio","Lahti","Lappeenranta","Maarianhamina","Mikkeli","Oulu","Rovaniemi","Savonlinna","Turku"};float LAMMOT[LAMMOT_ARVO];float KAUPLKM[KAUPLKM_ARVO];int z;int main(){	 for (z=0; z<10; z++) {	KysyTunnus(); }	TulostaKeskiarvot();}void KysyTunnus(void){	int i,j,y;	int luku;	int tunnus=0;	do	{						printf("Valitse kaupunki (1-10)\n");		for (y=0; y<10; y++)		{			printf("%d %s\n",y+1,nimet[y]);		}		printf("(99 lopettaa)\n");				scanf ("%d", &tunnus);		tunnus--;		if ( tunnus > 9 || tunnus <=-1 )		{					// lopetetaan kyselyt kokonaan			if ( tunnus == 98 ) { z=10; }			else { 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) // siirrytään seuraavaan kaupunkiin:				{					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;	float summa=0;	int lukum=0;				for (tunnus=0; tunnus<10; tunnus++)		{				if (LAMMOT[tunnus] != 0) 		{ 						printf("Kaupungin %s keskiarvo: %.2f\n",nimet[tunnus],LAMMOT[tunnus]);			summa=LAMMOT[tunnus]+summa; 			lukum++;		}				}		printf("Koko maan keskiarvo: %.2f\n",summa/lukum);					}/*Tehtävänanto: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). */