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

562

    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. Riikka Purra lupasi Suomen kansalle 1 euron bensaa, hinta nyt 2 euroa

      Vasemmistolaisen Marinin hallituksen aikana bensa ei maksanut kuin 1,3 euroa litralta. Ministerin pitäisi perustuslain m
      Maailman menoa
      82
      4438
    2. Suvi Lindenillä 5 366 päivän putki

      Täytyy kyllä myöntää vaikka olen itsekin innokas, niin en ole tuollaiseen yli kymmenen vuoden putkeen kyennyt. Välillä o
      Maailman menoa
      101
      3850
    3. Mistä se kertoo

      Näin miehen pitkästä aikaa. Samantien iski sellainen paineen tunne rintaan, sitä ei ole ollut vuosiin. Ja nyt olen siitä
      Ikävä
      36
      3519
    4. Eräs on taas viettänyt kokoyön täällä!!

      Etkö sä nuku koskaan??
      Ikävä
      51
      3170
    5. Kohdataanko me

      Enää?
      Ikävä
      40
      2648
    6. Nyt on sanottava että sattuu kipeästi

      Jos, sinä aikana kun olen kaivannut ja odottanut sinua ja olet tiennyt sen, niin jos valitsit toisen miehen. Katsot minu
      Ikävä
      18
      2529
    7. Rakkaalle miehelle

      Terveiset rakas. Ikävä on edelleen. Suru valtaa sydämen, kun en saa lähestyä sinua. En saa vastauksia, en soittoa, viest
      Ikävä
      22
      2342
    8. Olipa turha tämä

      Rakkaustarinamme
      Ikävä
      23
      2036
    9. UMK-juontajakaksikon pari isoa "mokaa" ihmetyttää - Mitäs tykkäsit Syköstä ja Uotisesta juontajina?

      Tänä vuonna UMK-lavalla nähtiin artistien lisäksi juontajakolmikko Jorma Uotinen, Sami Sykkö ja Jasmin Beloued. Juontami
      Euroviisut
      15
      1752
    10. Jussi "Mestari" Halal-ahon sotilasarvo?

      Minä vuonna Jussille myönnettiin sotilasansiomitali? Vai myönnettiinkö Jussille sotilasansiomitalia lainkaan?
      Maailman menoa
      35
      1715
    Aihe