Pereiti prie turinio

Nemažėjanti seka


Rekomenduojami pranešimai

Sveiki, gavau lengvą (iš pirmo žvilgsnio) užduotėlę, kur reikia įrašyti nemažėjančią sveikų skaičių seką - vos tik įveda mažesnį, programa išspausdina vidurkį ir kiekį tų narių. Su teigiamais kaip ir aišku viskas, tačiau su neigiamais nesigauna - panaikinti minusą būtų nelogiška, nes įvedus -15 (15), tada -14(14) ji didėja, bet panaikinus, gaunasi, kad mažėja. Ką tokiu atvėju patartumėte?

 

#include <stdio.h>

main()
{
   int numb = 1; //pradzios ciklo kintamasis
   int numb2 = 0; //laikinas kintamasis
   int kiek = 0; //kiekio skaitliukas
   int sum = 0; //kintamasis sumai skaiciuoti
   int vid; //vidurkio kintamasis
   while (numb >= numb2)
   {
       printf("Ivedinekite skaiciu seka tol, kol ji nemazeja: ");
       scanf("%d", &numb);
       if (numb >= numb2)
       {
           numb2 = numb;
           kiek++; //pridedame kieki
           sum += numb; //sumuojame kintamaji
           vid = sum / kiek; //skaiciuosime vidurki
       }

   }
   printf("Ivestu skaiciu kiekis: %d\n", kiek);
   printf("Ivestu skaiciu artitmetinis vidurkis: %d", vid);
   return 0;
}

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Sveiki, gavau lengvą (iš pirmo žvilgsnio) užduotėlę, kur reikia įrašyti nemažėjančią sveikų skaičių seką - vos tik įveda mažesnį, programa išspausdina vidurkį ir kiekį tų narių. Su teigiamais kaip ir aišku viskas, tačiau su neigiamais nesigauna - panaikinti minusą būtų nelogiška, nes įvedus -15 (15), tada -14(14) ji didėja, bet panaikinus, gaunasi, kad mažėja. Ką tokiu atvėju patartumėte?

 

#include <stdio.h>

main()
{
   int numb = 1; //pradzios ciklo kintamasis
   int numb2 = 0; //laikinas kintamasis
   int kiek = 0; //kiekio skaitliukas
   int sum = 0; //kintamasis sumai skaiciuoti
   int vid; //vidurkio kintamasis
   while (numb >= numb2)
   {
       printf("Ivedinekite skaiciu seka tol, kol ji nemazeja: ");
       scanf("%d", &numb);
       if (numb >= numb2)
       {
           numb2 = numb;
           kiek++; //pridedame kieki
           sum += numb; //sumuojame kintamaji
           vid = sum / kiek; //skaiciuosime vidurki
       }

   }
   printf("Ivestu skaiciu kiekis: %d\n", kiek);
   printf("Ivestu skaiciu artitmetinis vidurkis: %d", vid);
   return 0;
}

 

O kam naikinti tuos minusus? Jei įvedė -15, po to -14 tai viskas ok, seka nemažėja

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Problemos nepadėsiu išspręsti, bet patariu naudoti normalius kintamųjų pavadinimus.

 

O kuom tau jie užkliuvo? suma, kiekis, number..

 

 

O kam naikinti tuos minusus? Jei įvedė -15, po to -14 tai viskas ok, seka nemažėja

 

Bet įvedus minusinį skaičių, iškart išmeta, lyg seka mažėtų

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Šitą eilutę reikia pataisyti, kad veiktų su nuliu ir neigiamais:

int numb = 1; //pradzios ciklo kintamasis

Šitą eilutę reikia pataisyti, kad skaičiuotų vidurkį, o ne trupmenos sveikąją dalį:

vid = sum / kiek; //skaiciuosime vidurki

Redagavo wi_lius
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Sveiki uždarbiečiai,

 

Padėsiu jums. Šis kodas yra blogas, tik matomai pats autorius tą tesupranta. Visų pirma, dalyboje niekada nenaudok int, jei nori tikslaus atsakymo (su kableliu). Kitas dalykas - pirmoje iteracijoje lyginamas įvestas su vartotojo įvestas numb su numb2, kuris priskirtas 0. Būtų logiškiau, jei leistum iš pradžių įvesti 2 skaičius, t.y. scanf numb daryk prieš while, o cikle scanf numb2. Trečia, kaip jau minėjo, gali pasikeist kintamųjų vardus.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

  • Prisijunk prie bendruomenės dabar!

    Uždarbis.lt nariai domisi verslo, IT ir asmeninio tobulėjimo temomis, kartu sprendžia problemas, dalinasi žiniomis ir idėjomis, sutinka būsimus verslo partnerius ir dalyvauja gyvuose susitikimuose.

    Užsiregistruok dabar ir galėsi:

    ✔️ Dalyvauti diskusijose;

    ✔️ Kurti naujas temas;

    ✔️ Rašyti atsakymus;

    ✔️ Vertinti kitų žmonių pranešimus;

    ✔️ Susisiekti su bet kuriuo nariu asmeniškai;

    ✔️ Naudotis tamsia dizaino versija;

    ir dar daugiau.

    Registracija trunka ~30 sek. ir yra visiškai nemokama.

  • Naujausios temos

  • Karštos temos

×
×
  • Pasirinkite naujai kuriamo turinio tipą...