Muisti pätkii todella helppo kysymys arvaan ma..

Tauski

Niin aloin pitkästä aikaa jatkamaan c ohjelmointia ja nyt on pieni oikosulku johon toivon apua(muistin virkistystä).

Ohjelma kysyy käyttäjältä reaalilukuja kunnes käyttäjä antaa negatiivisen luvun. Tämän jälkeen ohjelma laskee lukujen summan. Teen myös tarkistuksen, että kyseessä on todella luku eikä esim. kirjain. Ongelmana on nyt se, että kun käyttäjä antaa negatiivisen luvun vähennetään se summasta.
Eli jos annan luvut 3, 4 ,3 ja sitten
haluan lopettaa ja annan luvun -3, ei tulostuva
summa olekkaan 10 vaan 7 koska viimeiseksi annettu
luku vähennetään summasta.

Asian tekee hauskaksi se, että osaan kyllä tehdä jutun oikein jos käytän funktiota!

Asia häiritsee suunnattomasti :)

[code]
#include

int main(void)
{
double luku=0;
double summa=0;

do{

printf("Anna desimaaliluku:\n");
while(scanf("%lf", &luku)==0)
   {
   printf("Siis NUMERO!!!!!!\n");
      fflush(stdin);
   printf("Anna desimaaliluku:\n");
   }
   summa=summa luku;

}while(luku>0);

printf("lukujen summa on %lf \n",summa);

return(0);
}
[/code]

6

570

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • virkistystä

      Ohjelmoinnissa käytetään, kuten muistat, varsin usein ehtolauseita eli lisäät summaan sen luvun jos se on positiivinen.

      • tauski

        enkös tuossa lisää?


      • virkistystä
        tauski kirjoitti:

        enkös tuossa lisää?

        Vaikka näin:

        if(luku>0) summa =luku;


    • stdiniä ei voi fflushata, vain tulostusvirrat (esim. stdout tai stderr).

      Ulomman do:n voinee poistaa laittamalla sen testin whileen:
      while(scanf("%lf", &luku)==0 && luku > 0)

      • tauski

        jos teen noin niin eihän se kysy lukua kuin kerran!


    • Dawone

      Anteeksi, pitää testata toimiiko tämä..

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

    Luetuimmat keskustelut

    1. Mitä tahtuu Kasperi Viita/Suviviita

      Poliisia ja ambulanssia iso määrä.
      Seinäjoki
      99
      4900
    2. Kalasataman talossa lienee rakennusvirhe

      Ei pitäisi olla mahdollista parvekkeen kautta tulipalon kiivetä katolle saakka kuin korkeintaan ylimmästä kerroksesta.
      Maailman menoa
      240
      1989
    3. Mikä on kaivattusi

      ammatti?
      Ikävä
      83
      1620
    4. Kristillinen Kaste on syntisten kaste, ei itsensä uskoviksi julistaneiden kaste

      Raamatun mukaan vain syntisyyden vuoksi kastetut saavat kasteen hyödyn, syntien anteeksisaamisen ja Pyhän Hengen lahjan
      Kaste
      240
      1180
    5. Venäjä teki mahtavan iskun Kiovaan?

      Miksi Ukraina ei kykene tekemään Moskovaan yhtä mahtavia iskuja.
      Maailman menoa
      332
      1146
    6. Kaipaatko nainen

      Semmoista tosi hankalaa ja arkaa miestä? Pitäisitkö hänet aina omanasi jos saisit hänet? Miten huomioisit hänen herkkyyd
      Ikävä
      105
      1100
    7. Onko kaivattusi ulkonäkö

      tarpeeksi miellyttävä? 🥕
      Ikävä
      50
      1089
    8. Nojatuoli !

      Uutta kehiin, kun edellinen pikavauhtia täyttyi, pitäisikö kiittää näitä asian jouduttaneita? Pilvet leijaa, sadetta en
      80 plus
      147
      1057
    9. Mökille pariksi viikoksi hänen kanssaan

      Ei teknologialaitteita. Niin ❤️
      Ikävä
      111
      1029
    10. Milloin ymmärsit

      Milloin tunnistit, että sinulle kirjoitetaan ja kuka kirjoittaa? Tarkka päivämäärä ja kellonaika 😉 Önnönnöö, jos ei os
      Ikävä
      85
      974
    Aihe