Mi a hiba? (C++ maximumkeresés)
Mi ebben a hiba?
(...)
int max=0;
int index=0;
for (int i=0;i<n;++i) {
if (ar[i]>max) {
max = ar[i];
index = i;
}
}
index++;
cout << index << endl;
(...)
Az "ar" tömb legnagyobb elemének a sorszáma kéne. Megírtam, működött, majd rájöttem hogy rossz tömbben keresem a maximumot, mert félreértelmeztem a feladatot, úgyhogy két helyen a "meret[i]" helyett írtam "ar[i]"-t, azóta az értékelő honlap szerint 0 pont, fordítási hiba, tehát tuti hogy ebben a részben van valami hiba. De mi?
(ar[] egy int-es n=100 elemű tömb)
for (int i=0;i<n;++i)
nem lehet, hogy i++
vagyis én is mindig így kezdtem, hogy for (int i=0;i<n; de mindig i++-t írtam, nem lehet, hogy a végén ar[100]ra próbál hivatkozni, habár csak ar[0]-ar[99] van?
Így is "futtatási hiba" :(
Pedig a gépemen amúgy tökéletesen lefut, jó eredménnyel.. :/
Ha fordítási hiba és neked lefordul akkor rosszul másoltad be, esetleg warningok maradtak benne vagy különböznek a gépen lévő libek.
Futtatási hibánál lehet túlindexelt tömb, nullával osztás, stb.
@Előző: nem.
Egyébként egyszerre a maxot is meg az indexet is fölösleges tárolni, az index pointerként szolgál a maxra
Plusz nem tudjuk, hogy az "értékelő honlap" milyen eredményt szeretne kapni.
Szerintem specifikálva van az input-output, jó lenne, ha kapnánk egy teljes kódot, +az output specifikációt
Akkor dönts el hogy futási vagy fordítási hiba, mert 2 helyen 2 különbözőt írtál.
n értéke nem vezet túlindexeléshez?
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!