Pereiti prie turinio

Rekomenduojami pranešimai

trumpai: duota uzduotis sukurti float masyva, apskaiciuoti to masyvo nariu suma, jei ta suma lyginis skaicius tai skaiciuoti kvadrata tos sumos, jei nelyginis, tai tos sumos kuba.

 

Problema tokia: pagal viska masyvo suma turetu buti float tipo. bet kai skaiciuoji ar ta suma lygine, ismeta klaida

'%' : illegal, left operand has type 'float'

 

suma int tipo negali buti nes masyvas float. Tai kaip sia problema isspresti? gal ka nors ne taip padarau?

 

http://www.paste.lt/paste/86a14d97b0b5710fd07f70e472ca7ca5

 

24 eiluteje yra %.

Redagavo solidas
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Na jei skaičiai yra "nesveiki", t.y. su kableliu, tai jų suma greičiausiai irgi bus su kableliu, o terminai "lyginis" ir "nelyginis" taikomi tik sveikiems skaičiams. Na, bet jei tie skaičiai masyve yra be kablelių arba bendra jų suma gaunama be kablelio, tai tada gali float paversti į int:

int suma_nauja = suma_sena;

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Na jei skaičiai yra "nesveiki", t.y. su kableliu, tai jų suma greičiausiai irgi bus su kableliu, o terminai "lyginis" ir "nelyginis" taikomi tik sveikiems skaičiams. Na, bet jei tie skaičiai masyve yra be kablelių arba bendra jų suma gaunama be kablelio, tai tada gali float paversti į int:

int suma_nauja = suma_sena;

Taip, skaiciai yra nesveiki, su kableliu. O kaip tu sakai, tai neiseina padaryt....

Nuoroda į pranešimą
Dalintis kituose puslapiuose
Taip, skaiciai yra nesveiki, su kableliu. O kaip tu sakai, tai neiseina padaryt....
Na jei skaičiai yra su kableliu, tai jiems nėra tokių savokų, kaip "lyginis" ir "nelyginis". Nes lyginis, reiškia, kad be liekanos dalinasi iš dviejų ir tai galioja tik sveikiesiems skaičiams. Kažkokia kreiva sąlyga.

 

Na, bet jei nori tikrinti ar dalinasi suapvalinus, tai gali taip parašyti tą 24-tą eilutę:

if ((int) suma % 2 == 0)

Turėtų veikti.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

nenaudok float(na nebent to reikalauja salyga) gauta suma padalink is 2, tada gauta atsakyma padaugink atgal is 2 :D kadangi naudosi int padaugins tik sveikaja dali, gauta atsakyma palygink su buvusia suma :) jei nelkygu reiskia skaicius, buvo nesveikas(per kableli) tikiuosi supratai :D

Nuoroda į pranešimą
Dalintis kituose puslapiuose

nenaudok float(na nebent to reikalauja salyga) gauta suma padalink is 2, tada gauta atsakyma padaugink atgal is 2 :D kadangi naudosi int padaugins tik sveikaja dali, gauta atsakyma palygink su buvusia suma :) jei nelkygu reiskia skaicius, buvo nesveikas(per kableli) tikiuosi supratai :D

salyga reikalauja float :D tavo pasakyma supratau :D protingai...

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Na jei skaičiai yra su kableliu, tai jiems nėra tokių savokų, kaip "lyginis" ir "nelyginis". Nes lyginis, reiškia, kad be liekanos dalinasi iš dviejų ir tai galioja tik sveikiesiems skaičiams. Kažkokia kreiva sąlyga.

 

Na, bet jei nori tikrinti ar dalinasi suapvalinus, tai gali taip parašyti tą 24-tą eilutę:

if ((int) suma % 2 == 0)

Turėtų veikti.

sitas veikia, bet neskaiciuoja nei kubo, nei kvadrato... o isvesties funkcijas gerai parases esu?

Nuoroda į pranešimą
Dalintis kituose puslapiuose
sitas veikia, bet neskaiciuoja nei kubo, nei kvadrato... o isvesties funkcijas gerai parases esu?
Žinok niekada gyvenime nesu programavęs C, tad manimi pasitikėti nereikia. :)

Aš dėčiau ant kvadrato ir kūbo funkcijų visur vietoj float int.

O kur printf("skaicius %d yra lyginis ir jo kvadratas lygus:%2.2f\n", suma, kvrez); tai aš daryčiau abu %d, nes kvrez jau būtų taip pat sveikasis skaičius, nes būtų dauginami keli sveikieji skaičiai. Tad pats ir su kūbais.

O kur printf("masyvo suma yra lygi:%f \n", suma); aš taip pat dėčiau %d, nes jei perduodam jau suapvalintą variantą, tai jis jau būna sveikasis skaičius.

 

P.S. Atkreipti dėmesį į pirmą sakinį. :D

 

Lifesound: ten į funkcijas nesikreipiama, ten tik jos aprašomos.

 

Edit: panagrindėjau, ir pastebėjau, kad ten nesikreipiama į funkcijas išvis. Ten kur rašai kvrez turėtum rašyti kvadratas(suma), o kur kubrez - kubas(suma). :D

Redagavo T-Mix
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Žinok niekada gyvenime nesu programavęs C, tad manimi pasitikėti nereikia. :)

Aš dėčiau ant kvadrato ir kūbo funkcijų visur vietoj float int.

O kur printf("skaicius %d yra lyginis ir jo kvadratas lygus:%2.2f\n", suma, kvrez); tai aš daryčiau abu %d, nes kvrez jau būtų taip pat sveikasis skaičius, nes būtų dauginami keli sveikieji skaičiai. Tad pats ir su kūbais.

O kur printf("masyvo suma yra lygi:%f \n", suma); aš taip pat dėčiau %d, nes jei perduodam jau suapvalintą variantą, tai jis jau būna sveikasis skaičius.

 

P.S. Atkreipti dėmesį į pirmą sakinį. :D

 

Lifesound: ten į funkcijas nesikreipiama, ten tik jos aprašomos.

na salyga reikalauja kad jei ieskoma kvadrato, rodytu du skaicius po kablelio, o jei kubo, tai tris skaicius po kablelio :D neisdege sis varintas.. :D

Nuoroda į pranešimą
Dalintis kituose puslapiuose
na salyga reikalauja kad jei ieskoma kvadrato, rodytu du skaicius po kablelio, o jei kubo, tai tris skaicius po kablelio :) neisdege sis varintas.. :D
Na tai tada dėk visur float, bet pataisyk tą kvrez į kvadratas(suma) ir kubas(suma).

Be to, man rodos, kad jei funkcijos apibūdinamos (ar kaip ten vadinama, kaip apie jas pirmą kartą užsiminama) jau int main(void) srityje, tai ir pati funkcija turi būti užrašyta toje pačioje srityje, o ne už jos ribos.

Tad arba iškelk apibūdinimus (float kvadratas(float suma):D į pačią pačią pradžią (po include, aišku), arba įkelk funkcijas į int main(void) sritį.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Žinok niekada gyvenime nesu programavęs C, tad manimi pasitikėti nereikia. :D

Aš dėčiau ant kvadrato ir kūbo funkcijų visur vietoj float int.

O kur printf("skaicius %d yra lyginis ir jo kvadratas lygus:%2.2f\n", suma, kvrez); tai aš daryčiau abu %d, nes kvrez jau būtų taip pat sveikasis skaičius, nes būtų dauginami keli sveikieji skaičiai. Tad pats ir su kūbais.

O kur printf("masyvo suma yra lygi:%f \n", suma); aš taip pat dėčiau %d, nes jei perduodam jau suapvalintą variantą, tai jis jau būna sveikasis skaičius.

 

P.S. Atkreipti dėmesį į pirmą sakinį. :D

 

Lifesound: ten į funkcijas nesikreipiama, ten tik jos aprašomos.

 

Edit: panagrindėjau, ir pastebėjau, kad ten nesikreipiama į funkcijas išvis. Ten kur rašai kvrez turėtum rašyti kvadratas(suma), o kur kubrez - kubas(suma). :D

jop praziopsojau :) kaip suprantu kur sake t-mix apie kvadratas(suma) tai sita turetum naudoti spausdinime, sorry jeigu maisau, nes toki dalyka dariau pries du metus :D

 

pvz kur funkcja grazina reiksmia return kvrez; tai ji grazina i kvadratas(suma) del to ir manau jog spausdinime ta turi rasyti :D

Redagavo lifesound
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Na tai tada dėk visur float, bet pataisyk tą kvrez į kvadratas(suma) ir kubas(suma).

Be to, man rodos, kad jei funkcijos apibūdinamos (ar kaip ten vadinama, kaip apie jas pirmą kartą užsiminama) jau int main(void) srityje, tai ir pati funkcija turi būti užrašyta toje pačioje srityje, o ne už jos ribos.

Tad arba iškelk apibūdinimus (float kvadratas(float suma):D į pačią pačią pradžią (po include, aišku), arba įkelk funkcijas į int main(void) sritį.

kurioj vietoj kvrez keisti? :) nesusigaudau

Nuoroda į pranešimą
Dalintis kituose puslapiuose
printf("skaicius %f yra lyginis ir jo kvadratas lygus:%2.2f\n", suma, kvrez);

o cia ka rasyti tada kad rodytu ta kvadrata?

 

ir koki return daryti?

printf("skaicius %f yra lyginis ir jo kvadratas lygus:%2.2f\n", suma, kvadratas(suma));

O return nieko keisti nereikia, viskas gerai ten funkcijose.

Nuoroda į pranešimą
Dalintis kituose puslapiuose
  • 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ą...