Kezdőoldal » Számítástechnika » Programozás » Miért nem működik ez a program?

Miért nem működik ez a program?

Figyelt kérdés

codeblocksban írtam c++-ban és ha 5 elemig írom akkor addig jó, de ha egy hatodikat kérek, akkor leáll a működése.


#include <iostream>


using namespace std;


int main()

{



int N=0, i=-1, a[N];


do{

N++;

i++;

cin>>a[i];



}

while(a[i]!=0);



for(int j=0;j<N-1;j++)

{



cout<<a[j]<<", ";

}

return 0;

}



2016. jan. 22. 16:33
 1/6 anonim ***** válasza:

Nem dolgozom C++-ban, majd kijavítanak ha hibás.

Nekem kissé gyanús az "a" tömb deklarálása. Gyakorlatilag egy 0 elemű tömböt hozol létre, aztán meg túlindexeled.

Akkora tömböt kell létrehoznod, amibe minden bekérendő adat belefér. Ha pedig nem tudod, hogy mennyi adat lesz benne, akkor használj vektorokat.

G.

2016. jan. 22. 16:56
Hasznos számodra ez a válasz?
 2/6 anonim ***** válasza:

int N=0,a[N];


Az 'a' tömböd 0 méretű marad a programod végéig szerintem.

2016. jan. 22. 16:56
Hasznos számodra ez a válasz?
 3/6 A kérdező kommentje:
ja oké köszönöm, akkor használok vektort.
2016. jan. 22. 17:15
 4/6 anonim ***** válasza:

1) Az N értéke 0, szóval egy 0 elemű tömböt hozol létre

2) Az i értéke kezdetben 1, majd növeled eggyel (lesz 2), így az első elem a 0. index helyett a 2. indexre fog kerülni

3) A do..while feltételébe nem vetted bele, hogy a tömb betelhet, ami szintén programhibához vezet

2016. jan. 22. 17:40
Hasznos számodra ez a válasz?
 5/6 anonim ***** válasza:
A C++ egyáltalán nem így műkődik.
2016. jan. 22. 18:17
Hasznos számodra ez a válasz?
 6/6 anonim ***** válasza:

Szerintem tombok helyett inkabb hasznalj vektort, listat, vagy hasonlot, es akkor irhatsz valami ilyent:


std::vector<int> v;

int a;


for(;;)

{

cin >> a;

if (!a) break;

v.push_back(a);

}

2016. jan. 23. 19:55
Hasznos számodra ez a válasz?

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!