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
 1/11 anonim ***** válasza:

Passz, megmondom őszintén hogy most fáradt vagyok hozzá, de egy erősen ajánlott tanács: használj kódmegosztó oldalt, és azt linkeld ide, mert ez így itt rondább mint egy hányás, és abszolút átláthatatlan, még ez a pár sor is.

- codeshare.io

- pastebin.com

- hastebin.com

2020. ápr. 25. 19:44
Hasznos számodra ez a válasz?
 2/11 A kérdező kommentje:
Igaz, bocsi. [link]
2020. ápr. 25. 21:20
 3/11 2*Sü ***** válasza:

37. sor:

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


Ez a feltétel – annak az első fele – soha nem lesz igaz. a minButOneIndex értékét 0-ra állítottad a 15. sorban. Így a numbers[minButOneIndex] értéke 101 lesz. Mivel nincs olyan szám a tömbben, ami kisebb lenne ennél, így a feltétel soha nem teljesül, így nem is módosul soha a minButOneIndex értéke.


Gondold újra, hogy hogyan is csinálnád ezt manuálisan, kézzel…

2020. ápr. 25. 21:30
Hasznos számodra ez a válasz?
 4/11 A kérdező kommentje:

Nemtudom. Próbáltam másfelől is megközelíteni: [link]

De itt is ugyan úgy az a baj, hogy soha nem fog lefutni, mert az első elem röngtön a legkisebb is. Milyen feltételt kéne írnom? Hogy oldjam ezt meg?

2020. ápr. 25. 22:27
 5/11 anonim ***** válasza:

Az előző kérdés alatt válaszoltam, mi volt a gondod a válasszal?


https://www.gyakorikerdesek.hu/szamitastechnika__programozas..

2020. ápr. 25. 22:58
Hasznos számodra ez a válasz?
 6/11 anonim ***** válasza:

"Milyen feltételt kéne írnom? Hogy oldjam ezt meg?"

Segítek: Megtaláltad az legkisebbet elemet. Most újra egy legkisebbet elemet keresel, azzal a kikötéssel, hogy az így megtalált elem ne egyezzen meg a már megtalált legkisebb elemmel.


Ha nem ugrana be még mindig, akkor konkrétan egy ilyesmi feltételre gondolok:

(numbers[i] < secondSmallest && numbers[i] != smallest)


numbers[i] < secondSmallest: ez biztosítja, hogy a legkisebb elemet találjuk meg.

numbers[i] != smallest: ez biztosítja, hogy a második legkisebb elemet találjuk meg.

2020. ápr. 25. 23:11
Hasznos számodra ez a válasz?
 7/11 A kérdező kommentje:

#5 Bocsi, azt hittem azt a kérdést kitöröltem. Nem vettem észre hogy ott is válaszoltak.


#6 Konkrétan ugyan így próbáltam már, ugyanennyi sikerrel. Még mindig nem fog teljesülni, mert, mint ahogy már a #3-as említette, a legkisebb elem rögtön a legelső elem.

2020. ápr. 26. 09:25
 8/11 A kérdező kommentje:
Meglehet ezt egyáltalán oldani, anélkül, hogy sorba rendeznénk?
2020. ápr. 26. 09:27
 9/11 anonim ***** válasza:
Az első elemet átugorja a "numbers[i] != smallest" feltétel miatt, így a másodikat írja be a secondSmallest változóba. Nálad ha jól nézem minIndex és minButOneIndex felelnek meg ezeknek a változóknak.
2020. ápr. 26. 15:34
Hasznos számodra ez a válasz?
 10/11 A kérdező kommentje:
Most éppen így áll, továbbra se működik: [link]
2020. ápr. 26. 16:10
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!