Látjátok, hogy mi lehet a hiba a programban(C++)?
#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ó :/
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.
"0-tól nem mehet K-ig"
0-tól _kell_ menni neki. nincs aktuális-1-es index? Kezeld le.
"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.
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!