Kezdőoldal » Számítástechnika » Programozás » Mit rontottam el? A második...

Nagyoli kérdése:

Mit rontottam el? A második legkisebb index értékre 1-nek kellene kijönnie, de mindig 0-dob ki. Hogy tudom megkapni a második legkisebb elemet?

Figyelt kérdés

A kódom (C nyelv):


#include <stdio.h>


#include <stdlib.h>



int main()


{


/*


Töltsön fel egy egész típusú 100 db elemet tartalmazó tömböt páratlan számokkal 100-tól növekvõ


értékkel! Keresse meg a legnagyobb értékû elemet a tömbben! Keresse meg a második legkisebb elemet


a tömbben!


*/



int numbers[100];


int maxIndex = 0;


int minIndex = 0;


int minButOneIndex = 0;



int i = 0;


for(i; i < 100; i++)


numbers[i] = (101) + i * 2;



int j = 0;


for(j; j < 100; j++)


{


if(numbers[j] > numbers[maxIndex])


{


maxIndex = j;


}


else if(numbers[j] < numbers[minIndex])


{


minIndex = j;


}


}



int l = 0;


for (l; l > 100; l++)


{


if(numbers[l] < numbers[minButOneIndex] && minButOneIndex > minIndex)


{


minButOneIndex = l;


}


}



printf("%d\n%d\n", maxIndex, minButOneIndex);


return 0;


}



#programozás #feladat #kiválasztás #tömb #minimumkiválasztás #maximumkiválasztás
2020. ápr. 25. 18:08
1 2
 11/11 anonim ***** válasza:

Bocs, ezt jobban át kellett volna gondolnom. :)


A kód megtévesztően működik, mert ez a legkisebb elemet nem találná meg, ha nem pont a 0. helyen lenne.


Ugyanis ez a rész sosem fog lefutni:

if (numbers[j] < numbers[minIndex])


Lefordítva: (101 < 0), és a 101 helyére ugye mindig csak nagyobb számok kerülnek, ahogy fordul a ciklus.


Azért "találja meg" véletlenül a legkisebb elemet, mert pont 0-ra van inicializálva a minIndex változó és pont a 0. helyen van a tömbben a legkisebb elem.


A legnagyobb elem megkeresése viszont jó.


---


Ha már elővettem a VS-t, megcsináltam a feladatot, ez egy lehetséges megoldás:

[link]


A ciklus igazából mehetne j=2-től is, hiszen előtte már megvizsgáltuk az első két elemet manuálisan.


A printf()-hez betettem még egy "konkrét számok" kiírást is, hogy tényleg látni lehessen jó-e az eredmény, de ezt nem kéri a feladat.

2020. ápr. 26. 18:04
Hasznos számodra ez a válasz?
1 2

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!