All pastes #768206 Raw Edit

Miscellany

public text v1 · immutable
·published 2007-11-10 12:00 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ä 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);
}