C++ feladatban mi lehet a hiba a tömb kiíratásánál?
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;}
#1 Te mi tesó? Nézd meg mégegyszer.
Kérdező: mi ír ki hibát? A fordító? Futtatáskor? Mit ír ki?
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.
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!