C++ ban ezt hogyan valósítsam meg?
A feladat az, hogy van N db szám, amik tetszőleges értéket vehetnek fel 0 és 3000 körül, ezek a számok egy folyószakasznak a centiméterben mért magasságai, azt kell megszámolnom, hogy hány darab árvízmentes szakasz van (szakasznak számít több darab hasonló tulajdonságú szám, jelen esetben minden olyan szakasz árvízmentes, ahol a magasság kissebb, mint 800 ).
Akárhogy kezdek hozzá, egyszerűen hülyeséget ír ki darabszámnak.Egy jó feltételre lenne szükségem, ami mindenféle esetben megadja jól a darabszámot.
Én valahogy így próbáltam vizsgálni a folyószakaszokat:
if
{
tomb[i] < 800 && tomb[i+1] > 800 && tomb[i+2] < 800
}
És ezt variáltam mindenféle módon, ami csak eszembe jutott, de egyszerűen nem jött össze :/.
Megjegyzés: Azt vettem észre, hogy máshogy kéne vizsgálni a számokat, hogyha az első és utolsó érték nagyobb, mint 800, mintha azok az értékek kissebbek lennének, mint 800.
Bocsi a sok szövegért, remélem valami hozzáértő tud majd hasznos tanácsot adni :)
int arvizmentes_szakaszok = 0;
for( int i = 0; i < N; ) {
if( tomb[i] < 800 ) {
arvizmentes_szakaszok++;
while( i < N) {
if( tomb[i] >= 800 ) {
break;
} else {
i++;
}
}
}
while( i < N ) {
if( tomb[i] < 800 ) {
break;
} else {
i++;
}
}
}
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!