Apua tehtävään!

Tee ohjelma, joka kysyy käyttäjältä ensin kokonaisluvun ja tämän jälkeen liukuluvun. Lopuksi ohjelma tulostaa molemmat luvut näytölle. Liukuluku tulostetaan kahden desimaalin tarkkuudella.

Anna kokonaisluku:443
Anna desimaaliluku:23.1

Syöttämäsi kokonaisluku: 443
Syöttämäsi desimaaliluku kahden desimaalin tarkkuudella: 23.10

Tähän tarttisin apua.. ei pitäisi montaa riviä viedä, jos joku viitsisi hieman valottaa kuinka tämä kirjoitetaan?

Kiitos!
102134
Äänestä

Muut lukivat myös

Vastaukset 10

Vanhimmat

/*+Kotiläksy+kopyright+(K)+by+jehj-software+company+*/#include+<stdio.h>void+main(void){    int+integeri=0;    float+floutti=0.0;    printf("Paas+antaen+kokonaislukema:+");    scanf("%d",&integeri);    printf("Ja+sitten+liukulukema:+");    scanf("%f",&floutti);    printf("Elikkäs+kokonaislukema+on+sitten+%d\n",integeri);    printf("Liukulukemaksi+kirjoittelit+%2.2f\n",floutti);    return+(void)0;}

Äänestä
  • Toimiikohan oikein? Minusta virheellisen syötteen voisi pyytää uudelleen kunnes tulee oikea luku.

    Paas antaen kokonaislukema: 4
    Ja sitten liukulukema: t
    Elikkäs kokonaislukema on sitten 4
    Liukulukemaksi kirjoittelit 0.00

    Äänestä

  • Ehkäpänäin kirjoitti:

    Toimiikohan oikein? Minusta virheellisen syötteen voisi pyytää uudelleen kunnes tulee oikea luku.

    Paas antaen kokonaislukema: 4
    Ja sitten liukulukema: t
    Elikkäs kokonaislukema on sitten 4
    Liukulukemaksi kirjoittelit 0.00

    Pyydettiin syöttämään liukuluku, ei kirjainta.

    Äänestä

  • alkup.tehtävässä kirjoitti:

    Pyydettiin syöttämään liukuluku, ei kirjainta.

    Voiha t olla myös liukuluku! Eikö tuossa pitänytkään tehdä symbolista algebraa osaava laskin?

    Äänestä

Paljo järkee opiskella koodausta jos ei intoa löydy opiskella ja tutkia itse asioiden toimivuutta?

Äänestä

#include+<stdio.h>int+main+(){ int+kokonaisluku; float+liukuluku; printf("Anna+kokonaisluku:"); scanf("%d",+&kokonaisluku); printf("Anna+desimaaliluku:"); scanf("%f",+&liukuluku); printf("Syöttämäsi+kokonaisluku+:+%d\n",+kokonaisluku); printf("Syöttämäsi+desimaaliluku+kahden+desimaalin+tarkkuudella+:+%.2f",+liukuluku); +++ return+0;}

Äänestä
  • En tiedä hyväksyttäisiinkö tuollainen ratkaisu amiksen koodarilinjalla, mutta yliopiston ohjelmointikursseilla ei varmasti.

    Ohjelmoinnissa ei riitä, että teet koodinpätkän, joka tekee täsmälleen juuri ja juuri sen mitä tehtävänanto vaatii, vaan kaikissa harjoitustehtävissä opetellaan samalla myös hyviä käytäntöjä. Jos käyttäjää pyydetään syöttämään tietynlainen luku, teksti, tms., niin ohjelman täytyy käsitellä kaikki mahdolliset tapaukset.

    Ellei ohjeistus ota kantaa siihen, mitä virhetilanteissa kuuluu tehdä, se on täysin ohjelmoijat itse päätettävissä, mutta Unhandled Exeption ei ole oikea ratkaisu koskaan.
    Ihan vähimmillään pitää lopuksi kopata kaikki poikkeukset ja sanoa käyttäjälle, että ”Noudattaisit ohjeistusta, idiootti.”
    Mieluummin toki kannattaa hoitaa se fiksummin ja pyytää syöte uudestaan, jos käyttäjä antaa virheellisen syötteen.

    Äänestä

Dokumentaation lukeminen yleensä auttaa:
$ man scanf
$ man 3 printf
Nuo ovat hyviä lähtökohtia em. funktioiden käyttöön ja kannattaa pitää mielessä myöskin v-alkuiset versiot jos niitä on malttia opetella käyttämään voi parametrien käsittely ohjelmalle olla astetta kivuttomampaa kun voi käyttää lähes valmista parseria siihen.

Äänestä
  • Jos pitäisi veikata, niin arvelisin, että aloittaja on tässä reilun viiden vuoden aikana jo ehtinyt ratkaista ongelmansa.

    Äänestä

  • Anonyymi00005 kirjoitti:

    Jos pitäisi veikata, niin arvelisin, että aloittaja on tässä reilun viiden vuoden aikana jo ehtinyt ratkaista ongelmansa.

    Sanoisin, että uusia kysyjiä on tähän aikaan vuotta jälleen liikkeellä ja vastauksia voi aina nostaa parantelemalla niitä - eli aihe tulee nostaa esiin jos se on edelleen tarpeellinen - monelle on! Päivämäärät voisi viesteistä jättää pois juuri tästä syystä.

    Äänestä

Kommentoi aloitusta


jehj kirjoitti:

Tee ohjelma, joka kysyy käyttäjältä ensin kokonaisluvun ja tämän jälkeen liukuluvun. Lopuksi ohjelma tulostaa molemmat luvut näytölle. Liukuluku tulostetaan kahden desimaalin tarkkuudella.

Anna kokonaisluku:443
Anna desimaaliluku:23.1

Syöttämäsi kokonaisluku: 443
Syöttämäsi desimaaliluku kahden desimaalin tarkkuudella: 23.10

Tähän tarttisin apua.. ei pitäisi montaa riviä viedä, jos joku viitsisi hieman valottaa kuinka tämä kirjoitetaan?

Kiitos!

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