Moodin laskeminen taulukosta.

Tässä koetan laskea suuruusjärjestykseen lajitellusta taulukosta moodia, jos joku osaa ratkaista ongelman, niin olisin hyvin kiitollinen. Tässä koko lähdekoodi, ei erityisen pätevää koodia, mutta toimii tuohon moodiin asti. Onnistuin saamaan moodin taulukosta esim. 2 2 3 3 4 4 kaikki nuo kolme moodia, mutta jos tulee 2 2 3 3 3, niin sitten ohjelma valitsee moodiksi molemmat, mikä ei KÄY. (moodi siis tarkoittaa taulukossa useimmin ilmenevää lukua). Jos haluatte jeesata, niin nakatkaa tuo koodi vaan editoriinne ja sen pitäs kääntyä, syntaksi toimii. Paljon kiitoksia auttajille.

#include
#include
#include

#define JAKO(x,y) x/y

int taulukko[20];

int luekokonaisluku(int t, int b){
int a;
int i=0;

if(t==0 && b==1){
while(1)
{
fflush(stdin);
printf("Anna luku");

if (scanf("%d", &a) != 1)
printf("Syötä jokin LUKU!\n");
else
break;

}
return a;
}

if(t==1 && b==0){

while(i
71034
Äänestä

Muut lukivat myös

Vastaukset 7

Vanhimmat

> sen pitäs kääntyä...

Jos tuo kääntyy niin kääntäjässä pahasti vikaa.

Koodia mainin ja muiden funktioiden ulkopuolella !

Jos haluat vastauksia niin postaa koodisi siinä muodossa kuin se on sinulla editorissa.

Äänestä
  • Saahan koodia olla mainin ulkopuolella. Esim globaali muuttuja int taulukko. Kokeilepas vaan kääntää, niin kyllä se kääntyy.

    Äänestä

Ilmeisesti on koulutehtävä (oletan).

Miksi kaksi sisäkkäistä silmukkaa [ while ] joissa vielä verrataan ja kasvatetaan samoja arvoja [ while(i

Äänestä
  • Kaks silmukkaa pitää olla, että voidaan breikata, jos taulukossa arvo vaihtuu ja sitte ruvetaan breakin jälkeen vielä pyörittään samaa taulukkoa, kun i:tä on kasvatettu yhdellä, joten päästään sen tök kohdan yli.

    Äänestä

  • hemm0 kirjoitti:

    Kaks silmukkaa pitää olla, että voidaan breikata, jos taulukossa arvo vaihtuu ja sitte ruvetaan breakin jälkeen vielä pyörittään samaa taulukkoa, kun i:tä on kasvatettu yhdellä, joten päästään sen tök kohdan yli.

    Ei menisi katselmoinnista läpi tuollainen. Jos käytät sisäkkäisiä silmukoita, tulisi molemmilla olla oma(t) laskurit (esim. i ja j).

    Miksikö?
    - ikiloopin vaara
    - ulompi ei välttämättä käy läpi kaikkia tarvittavia arvoja läpi.

    Itse tekisin moodi-taulukosta kaksiulotteisen, jossa ensimmäisessä solussa on syötetty luku ja toisessa luvun esiintymiskerrat. Tämän taulukon täytön voi tehdä samalla kun luet syötetyt luvut taulukkoon tai sitten erikseen myöhemmin. Sitten vaan käyt tämän taulukon läpi tossa kohdin missä nyt moodin yrität saada.

    ps. muista ottaa kiinni syötettävien lukujen maksimimäärä [20].

    Äänestä

  • lnx kirjoitti:

    Ei menisi katselmoinnista läpi tuollainen. Jos käytät sisäkkäisiä silmukoita, tulisi molemmilla olla oma(t) laskurit (esim. i ja j).

    Miksikö?
    - ikiloopin vaara
    - ulompi ei välttämättä käy läpi kaikkia tarvittavia arvoja läpi.

    Itse tekisin moodi-taulukosta kaksiulotteisen, jossa ensimmäisessä solussa on syötetty luku ja toisessa luvun esiintymiskerrat. Tämän taulukon täytön voi tehdä samalla kun luet syötetyt luvut taulukkoon tai sitten erikseen myöhemmin. Sitten vaan käyt tämän taulukon läpi tossa kohdin missä nyt moodin yrität saada.

    ps. muista ottaa kiinni syötettävien lukujen maksimimäärä [20].

    Tuohan kuulostaa hyvältä, en tosin vaan tiedä noista kaksulotteisista taulukoista, mutta sen voi varmasti tehä myös kahella erilliselläkin taulukolla. Jeps, kiitos vinkistä, pitää tässä taas ruveta koodaan, ku jaksaa.

    Äänestä

  • heebbo kirjoitti:

    Tuohan kuulostaa hyvältä, en tosin vaan tiedä noista kaksulotteisista taulukoista, mutta sen voi varmasti tehä myös kahella erilliselläkin taulukolla. Jeps, kiitos vinkistä, pitää tässä taas ruveta koodaan, ku jaksaa.

    Pieni opas taulukkoon....
    http://cs.stadia.fi/~silander/ohjelmointi/c_opas-Kaksiulo.html

    ... ja tee vakio (define) lukujen maksimimäärälle. käytä tätä vakiota varattaessa muistia ja tarkistaessa ettei mene yli...
    esim. #define MAX 20
    int taulukko[MAX];
    int kaksul_taulukko[MAX][2];
    ...

    Äänestä

Kommentoi aloitusta


hemmo kirjoitti:

Tässä koetan laskea suuruusjärjestykseen lajitellusta taulukosta moodia, jos joku osaa ratkaista ongelman, niin olisin hyvin kiitollinen. Tässä koko lähdekoodi, ei erityisen pätevää koodia, mutta toimii tuohon moodiin asti. Onnistuin saamaan moodin taulukosta esim. 2 2 3 3 4 4 kaikki nuo kolme moodia, mutta jos tulee 2 2 3 3 3, niin sitten ohjelma valitsee moodiksi molemmat, mikä ei KÄY. (moodi siis tarkoittaa taulukossa useimmin ilmenevää lukua). Jos haluatte jeesata, niin nakatkaa tuo koodi vaan editoriinne ja sen pitäs kääntyä, syntaksi toimii. Paljon kiitoksia auttajille.

#include
#include
#include

#define JAKO(x,y) x/y

int taulukko[20];

int luekokonaisluku(int t, int b){
int a;
int i=0;

if(t==0 && b==1){
while(1)
{
fflush(stdin);
printf("Anna luku");

if (scanf("%d", &a) != 1)
printf("Syötä jokin LUKU!\n");
else
break;

}
return a;
}

if(t==1 && b==0){

while(i

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu