Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: Ohjelma kaatuu

kollaa [19.01.2010 15:32:20]

#

Elikkä olen juuri aloittanut ohjelmoinnin c++ kielellä ja yritin tehdä painoindeksilaskurin, mutta ohjelma kaatuu heti kun viimeiset arvot on syötetty, eikä tulosta ilmaannu ruudulle. Tämä voi olla kyllä täysin reisille vedetty:

#include <iostream>
#include <cmath>

using namespace std;

int main ()
{
    float paino, pituus, indeksi;
    cout <<"Tervetuloa painoindeksi laskuriin! \n";
    cout <<"Syötä painosi kg \n";
    cin >> paino;
    cout <<"Syötä pituus m. \n";
    cin >> pituus; // tässä kaatuu!
    indeksi = paino=/(pituus* pituus);
    cout <<"Painoindeksisi on...." << indeksi <<" End of the story";
    return 0;
}

mikähän tässä mättää?

Mod. lisäsi kooditagit

TatuSalin [19.01.2010 15:41:34]

#

#Tämä odottaa syötettä.
cout <<"Tervetuloa painoindeksi laskuriin! \n";

#Mikset käyttäisi tässä mielummin cin komentoa tässä coutin tilalla?
cout <<"Painoindeksisi on...." << indeksi <<" End of the story";

Tuossa vois olla hyvä apu..

http://ftp.funet.fi/index/c opas/perusteet.html

Gaxx [19.01.2010 15:45:06]

#

Ohjelma ei mitä ilmeisimmin kaadu(ellei pituus satu olemaan nolla, jolloin kyseessä on nollalla jako), mutta se sulkeutuu välittömästi, kun main-funktio loppuu, joten et ehdi nähdä viimeisintä tulostusta.

Lisää ohjelman loppuun(ennen return 0; -lausetta) vaikkapa windowsin tapauksessa system("pause"). Muitakin vaihtoehtoja löytyy, mutta sillä ei tässä vaiheessa ole merkitystä. Voit myös ajaa ohjelmasi komentoriviltä, jolloin ikkuna ei sulkeudu ohjelman päätyttyä ja tulosteet jäävät näkyviin.

os [19.01.2010 15:53:08]

#

TatuSalin: kannattaa tarkistaa omat tietonsa ennen kun yrittää auttaa muita. Viestisi on valitettavasti silkkaa disinformaatiota.

Ketjun aloittajan ohjaisin näiden pariin:
https://www.ohjelmointiputka.net/oppaat/opas.php?tunnus=cpp_ohj_01#josohjelmavainvalahtaa
https://www.ohjelmointiputka.net/oppaat/opas.php?tunnus=cpp_ohj_01

Torgo [19.01.2010 16:11:00]

#

Tulos ei ilmaannu ruudulle, koska et vaihda riviä tulostuksen jälkeen. Tuloksesi siis ylikirjoittuu konsolin toimesta. Lisäksi toinen seikka mikä on tietääkseni vähän kääntäjäkohtainenkin, on että tuollaisena nuo tulostukset saattavat jäädä virtaan vellomaan eivätkä tule ruudulle asti. Käytä \n sijasta endl jolloin cout suoltaa standardivirran kiltisti ruudulle. Siis:

cout <<"Painoindeksisi on...." << indeksi << endl << " End of the story" << endl;

Edit.

Ei tuon kyllä pitäisi kelvata kääntäjällekään. Tässä on aika selvä typo:
indeksi = paino=/(pituus* pituus);

Vastaus

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

Tietoa sivustosta