Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <conio.h>
- #include <locale.h>
- int main(void) {
- setlocale(LC_ALL, "finnish");
- //alustus
- int iKaupunki[10]={0,0,0,0,0,0,0,0,0,0}; //kaupunkien taulukko
- double dLammot[10]={0,0,0,0,0,0,0,0,0,0}; //lämpötilojen taulukko
- double dKA[10]={0,0,0,0,0,0,0,0,0,0}; //lämpötilojen keskiarvo-taulukko
- int iYksi=0; //kaupunki skannin muuttuja
- double dKaksi=0; //lämpötila skannin muuttuja
- int i=0; //silmukoissa käytetty muuttuja
- int iJako=0; //koko maan lämpötilojen keskiarvon laskentaan tarkoitettu muuttuja, KAUPUNKIEN LUKUMÄÄRÄ (jakaja)
- double dLampo=0; //koko maan lämpötilojen keskiarvon lasketaan tarkoitettu muuttuja, LÄMPÖTILOJEN YHTEENLASKETTU SUURUUS (jaettava)
- int fail = 1;
- printf("Jee terve tuloa kaupunkien keskilämpötilalaskemisohjelmistoon lolololol\n");
- printf("kaupungit ovat:\n");
- printf("1 – Helsinki\n");
- printf("2 – Kuopio\n");
- printf("3 – Lahti\n");
- printf("4 – Lappeenranta\n");
- printf("5 – Maarianhamina\n");
- printf("6 – Mikkeli\n");
- printf("7 – Oulu\n");
- printf("8 – Rovaniemi\n");
- printf("9 – Savonlinna\n");
- printf("10 – Turku\n");
- printf("99 - OHJELMAN LOPETUS\n\n");
- printf("Anna kaupungin numero (1-10) tai lopeta ohjelma syöttämällä 99\n");
- scanf ("%d", &iYksi); //skannataan haluttu kaupungin numero
- //lol ei saa käyttää break; komentoo ni on pakko suorittaa toi vitun While lauseke vasta TÄN JÄLKEE :D:D: typerää, mut ei voi mitää... ainaki toimii !!
- // nää samat äskeiset kaks rivii on myös WHILE silmukan sisällä, viimesenä, koska muuten tää homma ei pelittäis.. on pakko kysyy ainaki kerra ;)
- if(iYksi <0 || iYksi >9){ //tarkistetaan, onko kaupungin numero luettelossa
- printf("Annoit kelvottoman numeron, pässi!\n");
- fail = 0;
- iYksi = 99;
- }
- while(iYksi != 99) { // pysytään while loopissa kunnes käyttäjä haluaa lopettaa syöttämällä iYksi arvoksi 99 .. jeejee, simppeliä
- iYksi--; //vähennetää yks, koska numerot taulukossa on 0-9, ja kaupungit on 1-10 :P
- iKaupunki[iYksi]++; //syötetyn arvon kohta taulukossa, eli jos kaupunki on helsinki, ni sen numeroa lisätään yhdellä, kätevää eikö? :D
- printf(".. ja lämpötila\n");
- scanf ("%lf", &dKaksi); //kysytään lämpötila, joka on siis Double tyyppi koska voi olla yks desimaali
- dLammot[iYksi] = dLammot[iYksi]+dKaksi; //hassun näköne, mut aika helppo: lämpötaulukon kohtaan, joka vastaa jo syötettyä kaupunki, lisätään lämpötila joka syötettiin ennen tätä riviä.
- printf("Anna kaupungin numero (1-10)\n"); //ja sama paska toistuu taas.. jeejee
- scanf ("%d", &iYksi); //nää on ne kaks samaa riviä mitä tossa ennen while-silmukkaa on, mut pakko suorittaa while-silmukan sisälläkin, koska muuten tää ei toimi. ja jos käyttäjä antaa 99 ni homma loppuu tähän.
- if(iYksi <0 || iYksi >9){ //tarkistetaan, onko kaupungin numero luettelossa TAAAAS!
- printf("Annoit kelvottoman numeron, pässi!\n");
- fail = 0;
- iYksi = 99;
- }
- }
- /*===========================
- noin, tarvittavat tiedot kaupungeista ja lämpötiloista on
- nyt kerätty. seuraavaksi lasketaan keskilämpötilat vain
- niistä kaupungeista, mitkä syötettiin
- ===========================*/
- for(i=0 ; i<10 ; i++) {
- if(iKaupunki[i]>0) {
- dKA[i] = dLammot[i] / iKaupunki[i];
- iJako++; /*aina kun tää silmukka suoritetaan, eli jonkun
- kaupungin keskiarvo lasketaan, lisätään tähän
- yksi jotta saadaan jakaja kaikille annetuille arvoille.*/
- dLampo = dLammot[i] + dLampo; //aina kun tää silmukka suoritetaan, lisätään dLampoon kaikki annetut lämpöarvot.
- }
- }
- /*äskeinen silmukka laskee jokaiselle kaupungille
- keskilämpötilan, jos iKaupunki[arvo] on nollaa isompi
- luku, eli jos sinne on laitettu jotai, ni se laskee,
- jos ei, ni skippaa seuraavaan, nii kaua ku kaikki kaupungit o läpi.
- Keskiarvojen laskemine o hoidettu kätevästi silmukassa
- pyörivällä muuttujalla, joka suurenee ja samalla hoitaa taulukoiden arvot :D*/
- dLampo = dLampo / iJako; // lasketaan koko maan keskilämpötila.
- /* toi seuraava on tehty switch-casella koska en
- tajuu miten sen muuten vois tehä. siin käytetää break;-komentoa
- jotta systeemi ei kusis.. mut breakkia ei saa käyttää
- ni mitä vittuu täs pitää tehä :D:D:D ??????? */
- for(i=0 ; i<10 ; i++) {
- if(iKaupunki[i]>0) {
- switch( i ) {
- case 0:
- printf("Helsingin keskilämpötila on %.1lf\n ", dKA[i]);
- break;
- case 1:
- printf("Kuopion keskilämpötila on %.1lf\n ", dKA[i]);
- break;
- case 2:
- printf("Lahden keskilämpötila on %.1lf\n ", dKA[i]);
- break;
- case 3:
- printf("Lappeenrannan keskilämpötila on %.1lf\n ", dKA[i]);
- break;
- case 4:
- printf("Maarianhaminan keskilämpötila on %.1lf\n ", dKA[i]);
- break;
- case 5:
- printf("Mikkelin keskilämpötila on %.1lf\n ", dKA[i]);
- break;
- case 6:
- printf("Oulun keskilämpötila on %.1lf\n ", dKA[i]);
- break;
- case 7:
- printf("Rovaniemen keskilämpötila on %.1lf\n ", dKA[i]);
- break;
- case 8:
- printf("Savonlinnan keskilämpötila on %.1lf\n ", dKA[i]);
- break;
- case 9:
- printf("Turun keskilämpötila on %.1lf\n ", dKA[i]);
- break;
- }//switch päättyy
- }//if päättyy
- }//for päättyy
- /*noin nyt on tulostettu kaupunkien keskilämpötilat..
- mut edelleenki .. miten se tehtäis ilman break; komentoa?? en tajuu :ooooo*/
- /*/tää seuraava if lause on vähä turha,
- ei tätä oikeesti tarvis pistää ton printin
- takia tähän, mut laitoin vaa et "näyttää
- hienommalta" niinku jukkaki aina tekee kaiken :D:D:DDD*/
- if(fail == 1){
- printf("Koko Suomen keskilämpötila on %.1lf\n ", dLampo);
- }/*tää IF siis tarkistaa, onko se ohjelman alussa
- annettu numero menny väärin, ja kattoo et onko toi
- "fail" muuttuja 1, eli jos on, ni numerot on menny
- oikein ja koko suomen keskiarvo tulostetaan näkyviin*/
- getch();
- return 0;
- }
Add Comment
Please, Sign In to add comment