Kezdőoldal » Számítástechnika » Programozás » Miért nem müködik a rendezésem?

Miért nem müködik a rendezésem?

Figyelt kérdés

É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();

}


2013. márc. 28. 15:47
 1/5 anonim ***** válasza:

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.

2013. márc. 28. 16:06
Hasznos számodra ez a válasz?
 2/5 A kérdező kommentje:
n akkor kap értéket amikor elindotom a programot az n ott fent deklarálva az #include-ok után lécci 1 normális programozó válaszoljon pls.
2013. márc. 28. 20:46
 3/5 anonim ***** válasza:

#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.

2013. márc. 29. 11:56
Hasznos számodra ez a válasz?
 4/5 anonim ***** válasza:
Ezek után kíváncsi leszek hányan fognak még építő jellegű választ írni neked...
2013. márc. 29. 11:59
Hasznos számodra ez a válasz?
 5/5 A kérdező kommentje:

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]

2013. márc. 29. 14:14

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!