Kezdőoldal » Számítástechnika » Programozás » Látjátok, hogy mi lehet a...

Látjátok, hogy mi lehet a hiba a programban(C++)?

Figyelt kérdés

#include <iostream>

#include<vector>


using namespace std;


int main()

{

//Deklaracio:

int K;

vector<int>meresek;


//Beolvasas:

cin>> K;


meresek.resize(K+1, 0);

for(int i=0; i<K; i++)

{

cin >> meresek[i+1];

}

//Feldolgozas:

int db=0;

for(int i=1; i<=K; i++)

{

if (meresek[i]>39 && meresek[i-1]<=39)

{

db=db+1;

}

}

cout << db << " ";



for(int i=1; i<=K; i++)

{

if (meresek[i-1]<=39 && meresek[i]>39)

{

cout << i << " ";

}

}

return 0;

}


Az a feladat, hogy adott K darab nap, amiken megmérjük a napi hőmérsékletet, és 39 fok feletti napokon hőségriadó van. Az a kérdés, hogy hányszor kellett hőségriadót elrendelni és hányadik napokon (ha több napig tart a hőségriadó, akkor csak az első napot kell). Mi lehet a hiba a progiban? Amikor én tesztelem magamnak, akkor jó eredményeket hoz ki, de az ellenőrzőprogram szerint nem jó :/



2021. ápr. 8. 12:47
 1/9 A kérdező kommentje:
Ja, rosszul másoltam be, a meresek vektor beolvasásánál.a ciklus 0-tól megy <=K ig
2021. ápr. 8. 12:57
 2/9 anonim ***** válasza:

Miért K+1 a vector mérete? (Nem vagyok C++-os, lehet úgy helyes.


Ha megnézed van két teljesen ugyanolyan for ciklusod, két teljesen ugyanolyan feltétellel. Akkor fölösleges a kettő, a db számlálást és a napok kiírását is csinálhatod ugyanott.


Ha a 0. napon hőségriadó van, az nem lesz beleszámolva.

2021. ápr. 8. 13:03
Hasznos számodra ez a válasz?
 3/9 anonim ***** válasza:
0-tól nem mehet K-ig mert akkor első iterációban hiba jönne i=0, mérések[i-1], mérések[0-1], mérések[-1], ilyen nem létezik.
2021. ápr. 8. 13:06
Hasznos számodra ez a válasz?
 4/9 anonim ***** válasza:

"0-tól nem mehet K-ig"


0-tól _kell_ menni neki. nincs aktuális-1-es index? Kezeld le.

2021. ápr. 8. 13:17
Hasznos számodra ez a válasz?
 5/9 A kérdező kommentje:
Azért van K+1 eleme, hogy az első elemet is vizsgálja.A 0 elem 0, a többi az adatok. Mivel a for ciklusokban 1-től indítom az indexelést, ezért az i-1 az elsőnél a 0. elem, ami van a vektornak, tehát azert kell hogy ne legyen kiindexelés. És ha a 0.elem 0, az első meg mondjuk 40, akkor már felírja az egyes indexet is. Meg amúgy igen, tudom hogy ugyanolyan a két ciklus, csak nem tudtam egybepakolni őket normálisan, ugy hogy azt írja ki amit kell :/
2021. ápr. 8. 13:18
 6/9 anonim ***** válasza:

"A 0 elem 0, a többi az adatok."


Ezt most felejtsd el. Az ellenőrzés meg biztos, hogy nem így működik.

2021. ápr. 8. 13:19
Hasznos számodra ez a válasz?
 7/9 A kérdező kommentje:
ja, de mégis K-1 ig megy, mert az i+1-dik elemet olvasom be
2021. ápr. 8. 13:36
 8/9 anonim ***** válasza:
Próbálj meg a kiírás végére írni egy endline-t("\n"), nekem sokszor volt, hogy emiatt nem fogadta el az ellenőrzőprogram.
2021. ápr. 8. 18:50
Hasznos számodra ez a válasz?
 9/9 A kérdező kommentje:
Köszi a válaszokat! Mint kiderült sajna a feladatkiírás volt a hibás :/
2021. ápr. 11. 15:54

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!