Sain tällaisen harjoitutehtävän koulussa eikä laatimani ohjelma lähde toimimaan kunnolla usean tunnin mietiskelyn jälkeen.
Tässä olisi koko tehtävän anto:
Tee ohjelma, joka laskee syötetyistä kokonaisluvuista sekä positiivisten
että negatiivisten kokonaislukujen osuuden. Lukujen syöttö lopetetaan
syöttämällä luku 0.
Tulostus:
Syötit kokonaislukuja seuraavasti:
----------------------------------
Negatiiviset 7 kpl 70.00%
Positiiviset 3 kpl 30.00%
Yhteensä 10 kpl 100.00%
Viitsisikö joku vilkaista mikä koodissani on vikana?
Tällaista olen saanut aikaiseksi, eikä sekään toimi. Olen yrittänyt saada ohjelmaa kysymään uusia numeroita joten olen jättänyt vielä tuon positiivisten ja negatiivisten lukujen lajittelun pois.
#include<iostream>; using namespace std; int main() { cout << "Anna lukuja. Ohjelma laskee montako lukua olet antanut. Nolla lopettaa ohjelman."; int luku; int lkm; { cin >> luku; lkm = 0; lkm++; } cout << lkm; for (luku = 0); return 0; }
Mod. lisäsi kooditagit!
Sun koodissa on logiikka ja syntaksi molemmat pielessä. Ihan pielessä. Onko siellä koulussa opetettu yhtään mitään?
Esikääntäjän komentoihin ei tule puolipistettä:
#include <iostream>
Sulta puuttuu silmukka. Nyt sä vaan luot uuden lohkon ja kysyt siellä yhden luvun, sitten asetat lkm-muuttuja nollaksi ja heti sen jälkeen yhdeksi.
Lopussa tulostat lukumäärän ja teet for-silmukan, joka asettaa luvun nollaksi.
Sä et tallenna sun kaikkia lukuja yhtään mihinkään. Sulla on tallessa vain viimeisin luku, tosin sä kysyt lukua vain kerran. Lisäksi lukua ei koskaan käytetä mihinkään.
Tossa siis vähän pintapuolisesti. Nyt takaisin materiaalin pariin. Myös putkassa on c++-opas jos kiinnostaa.
Ja kannattaa käyttää kooditageja.
Tarvitset paikan johon sijoitat lukemasi luvut. Tähän sopii kaksi muuttujaa toiseen positiiviset ja toiseen negatiiviset. Voit myös käyttää c++ std::vector tietorakennetta.
Seuraavaksi tarvitse muuttujan , johon luet käyttäjän syötteen.
Seuraavaksi luot silmukan (while, do-while, for) kaksi ensimmäistä semanttisesti parempia, koska syötettyjen lukjen määrää ei tiedetä.
Seuraavaksi silmukan sisällä luet syötteen sijoitat muuttujaan tai lisäät taulukkoon.
Jos päätit käyttää vektoria sinun kannattaa laskea negatiivisten ja positiivisten lukujen määrät ennen tulostuksia, jotta tulostuksessa ei tarvitse laskea määriä.
Viimeisenä teet tulostukset ohjeen mukaan.
Teuro kirjoitti:
Tarvitset paikan johon sijoitat lukemasi luvut. Tähän sopii kaksi muuttujaa toiseen positiiviset ja toiseen negatiiviset. Voit myös käyttää c++ std::vector tietorakennetta.
Tai sitten vaan kaksi laskurimuuttujaa. Säästyy tilaa, aikaa ja vaivaa. Tässähän ei ole oleellista tietää että mitä lukuja on syötetty ja missä järjestyksessä.
kaviaari kirjoitti:
Tai sitten vaan kaksi laskurimuuttujaa. Säästyy tilaa, aikaa ja vaivaa. Tässähän ei ole oleellista tietää että mitä lukuja on syötetty ja missä järjestyksessä.
Tarkoitin juurikin kahta laskurimuuttujaa tai yhtä vektoria. Kieltämättä hiukan hankalasti ilmaistu.
Aihe on jo aika vanha, joten et voi enää vastata siihen.