Kezdőoldal » Számítástechnika » Programozás » C++ feladatban mi lehet a...

C++ feladatban mi lehet a hiba a tömb kiíratásánál?

Figyelt kérdés

C++ba az lenne a feladat hogy egy 50 véletlen számból álló tömböt szétválogassunk két tömbbe aszerint hogy 3 vagy 4 számjegyűek-e. Amikor ki akarom íratni ezt a két tömböt hibát ír ki és nem tudom hogy ki az.


Ez van benne:

#include <iostream>

#include <ctime>

#include <cstdlib>



using namespace std;



int main()

{int A[50], B[50], C[50];


srand(time(0));

for (int i=0; i<50; i++)

{A[i]=(rand() % 1100)+100;

cout<<A[i]<<" ";}


for(int i=0; i<50; i++){

if(A[i]<=999) {B[i]=A[i];}

else if(A[i]>=1000) {C[i]=A[i];}

}

cout<<B[i]<<" ";


return 0;}



2014. jan. 11. 15:36
 1/8 anonim ***** válasza:
27%
Az, hogy a ciklusból akkor lép ki, ha i>=50, tehát i=50 lesz éppen. B[50] pedig egyértelmően túlindexelés.
2014. jan. 11. 16:12
Hasznos számodra ez a válasz?
 2/8 anonim ***** válasza:
ez is biztos, meg az, hogy ugyan miért árválkodik a végén az a kiíratás egyedül?
2014. jan. 11. 18:38
Hasznos számodra ez a válasz?
 3/8 iostream ***** válasza:

#1 Te mi tesó? Nézd meg mégegyszer.


Kérdező: mi ír ki hibát? A fordító? Futtatáskor? Mit ír ki?

2014. jan. 11. 19:03
Hasznos számodra ez a válasz?
 4/8 anonim ***** válasza:
egyes jól írta, i=49 ciklus végén i++ inkrementál szerintem, és akkor a következő utasítás b[50]
2014. jan. 11. 19:12
Hasznos számodra ez a válasz?
 5/8 SimkoL ***** válasza:
Ne is zavarjon, hogy 'összevissza' írogatsz mindkét tömbben és ez még csak a jéghegy csúcsa.
2014. jan. 11. 19:26
Hasznos számodra ez a válasz?
 6/8 anonim válasza:

Kedves Kerdezo!


Ez igy elegge nem megy. A generalasig helyes, de azutan nem, mivel ugyanazt az indexvaltozot hasznalod, amit ha leirsz lapra, magad is elkepedsz az eredmenytol.

Nem mondom meg teljesen a valaszt, viszont segitek elindulni, hogy tudj fejlodni.

Ilyen esetben szukseg van meg 2 valtozora, legyen m=0,n=0; Ezek lesznek a B, illetve C tomb valtozoindexei, alapertelmezetten 0-val egyenlok, hiszen a valogatas elott uresek. Na most, az if eknel cserelni kell a valtozindexeket, !!nem mindent!!, ++m, illetve ++n -re. A feladatod, hogy meggondold mit. A ++ eloszor hozzad egyet az m ertekehez, es utanna meg felhasznalja az ujonnan kapott eredmenyt. Ennek elonye jelen esetben az, hogy elhelyezed a tombben az ertekeket es meg is kapod a tomb hosszusagat!


A vegen az a szerencsetlen kiiratas pedig ertelmetlen, mivel tulindexelt, ahogy mar mondtak elottem is, es ha meg nem is lenne tulindexelt, akkor is csak 1 erteket irna ki.


Remelem tudtam segiteni, ha tovabbi kerdesed van, keress meg levelben.

2014. jan. 11. 19:27
Hasznos számodra ez a válasz?
 7/8 iostream ***** válasza:
49%
Nana! A B[i] eleve értelmetlen a cikluson kívül, mert nincs i nevű változó. Ez ilyen msvc-s kiegészítés, és nem kéne használni.
2014. jan. 11. 19:53
Hasznos számodra ez a válasz?
 8/8 anonim ***** válasza:
igen, bocsánat, igazad van, a ciklusfejben hozta létre i-t :/
2014. jan. 11. 20:27
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!