Mit rontottam el? A második legkisebb index értékre 1 nek kellene kijönnie, de mindig 0-dob ki
A kódom:
#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%d\n", minIndex, maxIndex, minButOneIndex);
return 0;
}
if (numbers[l] < numbers[minButOneIndex] && minButOneIndex > minIndex) {...}
Ez a feltétel nem lesz igaz.
A minButOneIndex=0. A minIndex=0.
A legkisebb szám a 0. helyen van.
--
Első kör:
numbers[0]<numbers[0] -> 101<101? -> FALSE -> && utáni érdektelen, mert már nem lehet igaz a kifejezés.
Második kör:
numbers[1]<numbers[0] -> 103<102? -> FALSE -> && utáni érdektelen.
Igazából tovább nem is kell vizsgálni, mert a 0. helyen lévő számnál kisebbet nem találunk a tömbben, tehát sosem fog felvenni TRUE értéket a kifejezés.
--
Más: minButOneIndex > minIndex. A minButIndex-nek a feltételen belül adsz a minIndexnél nagyobb értéket. Hogyan várod el, hogy ez valaha is teljesüljön?
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, 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!