Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: Ohjelman tulostusongelma

tuomas1977 [28.11.2022 12:32:44]

#

Moi, teen nonstop-etäkouluna c++ ohjelmointia ja ole yrittänyt tälläistä harjoitusta. Ohjelma toimii muuten oikein, muttakun sokerinpaloja on -5 niin ohjelman pitäisi tulostaa tuo "Ohjelmassa tapahtunut virhe!", muttakun ei vaan niin tee, se tulostaa vastauksen, kuten jos niitä olisi 1. Missä tuossa nyt on vika kun en keksi millään?
Ohjelma ei toimi silloinkaan jos ehto on suoraa että sokeri == -5. Eikö int:n pitäisi sisältää myös negatiiviset muuttujat?

#include<iostream>
using namespace std;

int main()
{
	int sokeri;
	char juoma;

	cout << "Juotko kahvia vai teetä? (k/t) ";
	cin >> juoma;
	cout << "Montako palaa sokeria? ";
	cin >> sokeri;

	if (juoma == 'k' && 'sokeri' >= 0 < 3)
		cout << "kahvi kyllä piristää!" << endl;
	else if(juoma == 'k' && 'sokeri' > 2 )
		cout << "Kahvi voi olla aika vahva maku..." << endl;
	else if(juoma == 'k' && 'sokeri' < 0 )
		cout << "Ohjelmassa tapahtunut virhe!" << endl;


	else if(juoma == 't' && 'sokeri' >= 0 < 3)
		cout << "Tee usein rauhoittaa!" << endl;
	else if(juoma == 't' && 'sokeri' > 2)
		cout << "Taidat pitää teestäsi makeana?" << endl;
	else if(juoma == 't' && 'sokeri' < 0 )
		cout << "Ohjelmassa tapahtunut virhe!" << endl;


}

jlaire [28.11.2022 12:51:22]

#

Laita kääntäjän varoitukset päälle ja lue ne läpi jatkossa.

Ota hipsut pois, 'sokeri' pitäisi olla sokeri.

Et voi yhdistää >=0 ja <3 vertailua tuolla tavalla, tee näin: sokeri >= 0 && sokeri < 3

tuomas1977 [28.11.2022 13:44:44]

#

Kiitos, tuo toimi.
Kääntäjä on integroitu sinne nettisivulle, jossa kurssia suoritan eikä siihen voi itse vaikuttaa. Se kyllä antaa virheilmoituksia, mutta ne ovat aika ylimalkaisia. PItäisi varmaan asentaa varsinainen kääntäjä koneelle jolla tälläiset tilanteet voisi ratkaista, ehkä.

vehkis91 [02.12.2022 22:17:40]

#

Suosittelen kyllä asentamaan vaikka visual studion ja sillä tekemään nuo tehtävät. Sitten kun koodin on saanu toimimaan, niin se on helppo kopioida oppimisympäristöön.

Vastaus

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

Tietoa sivustosta