Bugi?

Rookie

Ohjelma pätkä:
double desimaali()
{
int num;
char merkki;
char puskuri[128];
printf ("Anna luku: ");
gets (puskuri);
sscanf (puskuri,"%d", &num);
printf ("Anna merkki:");
gets (puskuri);
sscanf (puskuri,"%c", &merkki);
printf ("Annoit luvun %d ja merkin %c", num, merkki);
getch();
}
Ongelma on se että kun ajan ohjelman "Anna luku:" eteen tulee aina luku 2009226388, vaikka en sitä kirjoitakkaan.
Eipä tähän vissiin vastausta löydy, mutta jos joku arvelee tietävänsä että missä vika voisi olla niin olen kiitollinen.

5

351

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • bladi

      No siis:
      int num; -> olet varannut integer muuttujan johon olisi vissiin tarkotus tallentaa tämä käyttäjän antama luku.
      a) Alusta aluksi muuttuja int num = 0;
      Sitten haluat tallentaa käyttäjän syöttämän luvun integer muuttujaan num;
      - printf("Annna luku: ");
      - gets(num);
      Kun et ole alustanut muuttujaa num;, etkä sinne mitään myöskään vie niin se näyttää jonkun luvun joka sattuu olemaan varatussa muistipaikassa.

      • Rookie

        ... tää pätkä toimii kyllä jos se on pääohjelmassa, mutta tässä aliohjelmassa "double desimaali()" se tekee sen jutun mitä edellisessä viestissä kirjoitin.


      • bladi
        Rookie kirjoitti:

        ... tää pätkä toimii kyllä jos se on pääohjelmassa, mutta tässä aliohjelmassa "double desimaali()" se tekee sen jutun mitä edellisessä viestissä kirjoitin.

        Sit on kyse muuttujien kuuluvuudesta, eli tee muuttujista globaaleja ja testaa.


      • Rookie
        bladi kirjoitti:

        Sit on kyse muuttujien kuuluvuudesta, eli tee muuttujista globaaleja ja testaa.

        Tein siitä muuttujasta globaalin ja alustin sen, mutta ohjelma jotenkin hyppää ton "Anna luku:" lauseen yli ja antaa num- muuttujalle arvon 0. Merkki muuttujalle pystyn syöttämään arvon.

        printf ("Anna luku: ");
        gets (puskuri);
        sscanf (puskuri,"%lf", &num);
        printf ("Anna merkki:");
        gets (puskuri);
        sscanf (puskuri,"%c", &merkki);
        printf ("Annoit luvun %d ja merkin%c", num, merkki);


      • ...
        bladi kirjoitti:

        Sit on kyse muuttujien kuuluvuudesta, eli tee muuttujista globaaleja ja testaa.

        Miksi ihmeessä muuttujista pitää tehdä globaaleja kun niitä ei käytetä mihinkään muuhun kuin funktion sisäiseen toimintaan??

        Pari kysymystä kuitenkin:
        - mitä pääohjelmassa tehdään ennen tuon funktion kutsua?
        - miksi funktio on tyyppiä 'double' vaikka se ei palauta yhtään mitään?


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Putin hoiti Suomen natoon ja myös Ruotsin

      Iso kiitos Vladimir Putinille. Hänen ansiosta pääsemme nyt Natoon. Putin halusi Naton lähelle ja nyt sai. Voimme tästä kiittää vain Putinia.
      Maailman menoa
      643
      7916
    2. Niinistö teki hetkessä Suomesta Venäjän ydinaseiden maalitaulun

      Kaiken lisäksi mies vielä lällätteli Putinille eilisessä tiedotustilaisuudessa ja käski katsomaan itseään peiliin. Kyllä vähän asiallisempaa käytöstä
      Maailman menoa
      452
      2201
    3. Voi Stefu ja sun kiivas luonteesi

      Sielä lentelee ullakkohuoneiston ikkunasta daamin vaatteet ja matkalaukut pitkin pihaa. Toisaalta,en ihmettele yhtään että tämä suhde päättyi näin,kyl
      Kotimaiset julkkisjuorut
      229
      2105
    4. Poliisi otti Stefun kiinni!

      Seiska tietää kertoa.
      Kotimaiset julkkisjuorut
      143
      1680
    5. Veikkaus: Miten The Rasmus pärjää Euroviisuissa?

      Euroviisuhuuma on ylimmillään, kun Suomi ja The Rasmus taistelee biisillään Jezebel. Bändi on tikissä, kunhan Lauri Ylösen ääni kantaa. Mitä veikka
      Viihde ja kulttuuri
      51
      1226
    6. Ohhoh! Martina Aitolehti ja seurapiirihurmuri-Jesper ekassa yhteiskuvassa - Sutinaa Mallorcalla!

      Martina Aitolehti ja seurapiirijulkkis-Jesper nauttivat toisistaan varsin vauhdikkaissa merkeissä Mallorcalla. Aitolehti ei ole esitellyt rakastaan vi
      Kotimaiset julkkisjuorut
      25
      1211
    7. Stefanilta tuli taas karu totuus Sofiasta

      Marokkolainen h*o*ra! Voi tsiisus kun mulla on hauskaa! Lumput lentää ikkunasta kun Stefu raivoaa h*uralleen🤣🤣🤣 Nyt ne popparit tulille, tästä tule
      Kotimaiset julkkisjuorut
      99
      1084
    8. Ootko onnellinen kun ei tarvitse

      nähdä tätä tyhmää naamaa enää koskaan? Multa se särkee sydämen, mutta minkäs teen. Vaikka olisi kuinka sinnikäs eikä hellittäisi, se ei aina auta.
      Ikävä
      65
      831
    9. Steppuli veressä

      Seiskan lööpissä Steppulilla naama ja nyrkit veressä. Ei tainnut ihan kamojen pihalle paiskominen riittää. Onkohan pistänyt kämpän tuusannuuskaks.
      Kotimaiset julkkisjuorut
      54
      733
    10. Oletko nähnyt eroottiset kohuleffat? Fifty Shades Of Grey -trilogia tv:stä

      Fifty Shades -trilogia starttaa, kun nuori opiskelijanainen Anastasia tapaa rikkaan liikemiehen. Seksisuhdehan siitä starttaa, höystettynä sadistisill
      Suhteet
      6
      721
    Aihe