Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: Luku väliltä

Sivun loppuun

supermies [31.10.2014 18:25:17]

#

eli tarkotus olis saada sillee et ton ian pitäs olla 0-100 tai muuten tulee ":P" mut ei toimi mikä tos on vikana??? oon yrittäny vaikka mitä...

cin >> ika;


if (ika <= 0 || ika > 100){

    cout << "Ai " << ika << ". " << "Kiva ikä!" << endl;

}


else{


    cout << ":P" << endl;

}

kieli on c++
ja käytän codeblocksii

ja ihan sama minkä luvun laittaa nii se aina noudattaa tätä kaavaa

cout << "Ai " << ika << ". " << "Kiva ikä!" << endl;

kiitti!

Eki++ [31.10.2014 18:53:03]

#

Puretaas tuo sinun koodisi pseudoksi:

ika = lueluku();

jos ika pienempi tai yhtasuuri kuin 0 TAI ika suurempi kuin 100:
	tulosta("Ai ", ika, ". ", "Kiva ikä!\n");
muuten:
	tulosta(":P");

Tajuatko mikä on pielessä?

supermies [31.10.2014 18:55:21]

#

eli jos luku on 0-100 nii sit se tulostaa :P?


ok...

eli näin?

if (ika >= 0 || ika < 100){

    cout << "Ai " << ika << ". " << "Kiva ikä!" << endl;

}

vai?

Eki++ [31.10.2014 18:56:53]

#

Juuri noin.

Edit: Tai itse asiassa ei. Sun pitää käyttää ja-operaattoria &&.

supermies [31.10.2014 18:59:40]

#

ei toimi vaikka kirjottas 1000 ikä nii silti se sanoo Ai 1000. Kiva ikä!


:(

Eki++ [31.10.2014 19:03:45]

#

Kun koodi on:

#include <iostream>

int main()
{
	int ika;
	std::cin >> ika;
	if(ika >= 0 && ika < 100)
	{
		std::cout << "Ai " << ika << ". Kiva ikä!" << std::endl;
	} else
	{
		std::cout << ":P" << std::endl;
	}
	return 0;
}

niin jos syöte on '5', tulostaa se 'Ai 5. Kiva ikä!' ja jos syöte on 500, tulostaa se ':P'. Kaikki on juuri niin kuin pyysit. Muistitko varmasti kääntää?

supermies [31.10.2014 19:11:54]

#

joo toimii operaattori piti vaa vaihtaa && näiks kiitti

Metabolix [01.11.2014 16:20:27]

#

supermies kirjoitti:

ja ihan sama minkä luvun laittaa nii se aina noudattaa tätä kaavaa

cout << "Ai " << ika << ". " << "Kiva ikä!" << endl;

Olet väärässä. Ihan suoraan alkuperäisestä koodistasi:

$ ./a.out
0
Ai 0. Kiva ikä!
$ ./a.out
1
:P
$ ./a.out
100
:P
$ ./a.out
101
Ai 101. Kiva ikä!

Toisin sanoen koodissasi vain ovat vaihtoehdot väärin päin. Testauksessa voi myös käyttää järkeä: jos koodin toiminnan pitäisi muuttua lukujen 0 ja 100 seudulla, tietenkin viisainta on testata lukuja niiden läheltä (esim. -1 ja 1 ja 99 ja 101), ja vastaavasti olisi typerää testata useampia lukuja väliltä (vaikka 20, 30, 40, 50), koska ne aivan takuulla toimivat samalla tavalla.

Eki++ taas sekoili ihan omiaan. Ehtoa ei olisi tarvinnut muuttaa, vaan olisi voinut vain vaihtaa cout-rivit toisin päin.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta