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
    • 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.


      • 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. Riikan kukkaronnyöri on umpisolmussa

      Kulutus ei lähde liikkeelle, koska kansalaiset eivät usko, että: – työpaikka säilyy – tulot eivät romahda – talous ei h
      Maailman menoa
      5
      2742
    2. Jos vedetään mutkat suoraksi?

      Niin kumpaan ryhmään kuulut? A) Niihin, jotka menevät edellä ja tekevät? Vai B) Niihin, jotka kulkevat perässä ja ar
      Sinkut
      106
      2571
    3. Tanskan malli perustuu korkeaan ansioturvaan

      Ja vahvoihin työllisyys- ja kotoutumispalveluihin. Suomessa Riikka on leikannut juuri näitä: palkkatukea, työttömyysturv
      Maailman menoa
      17
      2291
    4. Vain vasemmistolaiset ovat aitoja suomalaisia

      Esimerkiksi persut ovat ulkomaalaisen pääomasijoittajan edunvalvojia, eivät auta köyhiä suomalaisia.
      Maailman menoa
      46
      1874
    5. Miten must tuntuu

      et sä ajattelet mua just nyt
      Ikävä
      32
      1453
    6. Anteeksipyyntöni

      Jätän tähän anteeksipyyntöni sinulle, koska en voi sanoa sitä missään muuallakaan. Pyydän anteeksi, jos purkamani tuska
      Järki ja tunteet
      14
      1443
    7. Kun et vain tajua että

      sua lähestytään feikkiprofiililla :D Hanki aivot :D m-n
      Ikävä
      177
      1163
    8. Sydämeni valtiaalle

      En täältä aio asioita kysellä. Haluan tuoda tiedoksesi, että pohjimmiltani en ihmisiä tahdo satuttaa ja ajattelen muiden
      Ikävä
      101
      1144
    9. Persu ajoi autoa

      Ajoi lapsen yli https://www.iltalehti.fi/kotimaa/a/597a7468-3d1d-455e-bed2-21c1efc31ac1
      Perussuomalaiset
      20
      1053
    10. Oletko tyytyväinen

      Tämän hetkiseen tilanteeseenne? Odotatko, että lähennytte vai yritätkö päästä yli ja eteenpäin?
      Ikävä
      81
      948
    Aihe