Miért nem müködik a rendezésem?
Érdekes h ha n<= teszek és 1-től megyek a forokba a főprogramba akkor rendez de hanormálisan 0-átol n-ig megyek akkor nem.
#include<stdio.h>
#include<conio.h>
int n;
void beszurorendezes(int a[20])
{ int i, j, x;
for (i = 2; i <= n; i++) {
x = a[i]; j = i-1;
while (j > 0 && a[j] > x) {
a[j+1] = a[j];
j--;
}
a[j+1] = x;
}
}
int v[20], k;
int main()
{
printf( "n=" );
scanf( "%d",&n );
for(k=0; k<n; k++)
{
printf( "v[%d]=",k );
scanf( "%5d",&v[k] );
}
beszurorendezes (v);
for (k=0; k<n; k++)
{
printf( "%5d ",v[k] );
}
getch();
}
Ennek semmi értelme:
void beszurorendezes(int a[20])
{
int i, j, x;
for (i = 2; i <= n; i++) {
x = a[i];
...
Fix 20 méretű tömbben mész a 2..n elemeken úgy, hogy n-et nem is ellenőrzöd...
Egyébként, ha a tömb n elemű lenne, akkor i=n esetén a[n]-et próbálná elérni, ami nem létezik.
#1 vagyok.
Miért is nem vagyok programozó? :) Rámutattam egy elvi hibára a programodban.
Miért nézel le, és miért próbálod magyarázod meg a hülyeséged? Nem tudtad megcáfolni, amit írtam, csak puffogsz, teljesen érthetetlenül, mert nem arra kaptál választ, amire szerettél volna.
Rá is mutattál, hogy igen, az az N a főprogramból jön, bekéred szépen billentyűzetről, de továbbra is konstans 20 méretű tömböt használsz, és N elemen akarsz végigmenni. Az N-et EGYSZER SEM HASONLÍTOD ÖSSZE a 20-szal.
Én erre mutattam rá. És ez igenis elvi hiba. Inputról jövő adatnál az az első, hogy leellenőrzi az ember, mielőtt használja. Pláne C-ben, ahol nincs olyan szép OutOfBounds exception-ös megoldás, mint Java-ban.
Amúgy meg:
Ha egy ilyen 20 soros programot nem tudsz debuggolni, mi alapján döntöd el, ki normális programozó és ki nem?
Ha ennyire semmibe veszed a válaszokat, és ennyire "jobban tudod", akkor miért kérdezel?
Gondolkodjál már egy kicsit.
Ha igy jelentem ki a fugvenyt akkor tetszik de a kérdére válaszolj léccives és nem is néztelek le.(annyira):D
void beszurorendezes(int a[n]
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!