Kezdőoldal » Számítástechnika » Programozás » C++ bemenet ellenőrzés?

C++ bemenet ellenőrzés?

Figyelt kérdés

Ez a beolvasásos függvényem:


void Beolvas(int &N, int* adatok)

{

do

{

cin >> N;

}

while(!HelyesN(N));


for(int i=1; i<=N; i++)

{

do

{

cin >> adatok[i];

}

while(!HelyesAdatok(adatok[i]));

}

}


itt az utolsó sorra ezt írja ki:

"error: invalid conversion from 'int' to 'int*' [-fpermissive]"


ez pedig a bemenet ellenőrzéses :

De itt pedig az első sorra ezt írja ki:

"error: initializing argument 1 of 'bool HelyesAdatok(int*)' [-fpermissive]"


bool HelyesAdatok(int* adatok)

{

int i=1;

if(adatok[i]<0)

{

cerr << "A meresi eredmeny nem lehet negativ\n";

}

if (adatok[i]>500)

{

cerr << "az adat nem lehet nagyobb mint 500";

}

return (adatok[i]>=0 && adatok[i]<=maxAi);

}



nemrég kezdtem tanulni a programozást, így nem igazán értem mi a probléma :/



2016. ápr. 30. 14:54
 1/9 anonim ***** válasza:

1. C++-ban a tömbök 0-tól indexelődnek.


2. A Helyes adatok függvényed teljesen hibás.

Tömböt kéne átadnod, miközben intet adsz át, közben lefixálsz egy indexet 1-re, ami lehet nincs is benne a tömbben.

Output-ra írsz egy függvényben, ami egy logikai vizsgálatot végez, borzasztó mellékhatás.

2016. ápr. 30. 15:27
Hasznos számodra ez a válasz?
 2/9 anonim ***** válasza:

"error: invalid conversion from 'int' to 'int*' [-fpermissive]"


int és int* közötti konverziós hiba. A HelyesAdatok függvényed egy tömböt (az egyszerűség kedvéért: int*) vár bemenetnek, te pedig egy tömbelemet adsz át neki.


A második hiba ugyanerre vezethető vissza.


#1: Az eldöntője a cerre ír ki, az miért is gond?

2016. ápr. 30. 15:39
Hasznos számodra ez a válasz?
 3/9 A kérdező kommentje:

Köszi


a 0-tól indexelés az a program többi részénél ki van küszöbölve


hogy kell azt megcsinálni, hogy ne tömbelemet hanem tömböt adjak át? ha kiszedem az "i" betűt, akkor is ír ki hibát

2016. ápr. 30. 15:49
 4/9 anonim ***** válasza:
Kiszeded az i betűt??
2016. ápr. 30. 15:56
Hasznos számodra ez a válasz?
 5/9 A kérdező kommentje:

while(!HelyesMeresek(meresek[]));


erre azt írja ki, hogy

"error: expected primary-expression before ']' token

2016. ápr. 30. 16:01
 6/9 anonim ***** válasza:
Ha már vannak: [link]
2016. ápr. 30. 16:14
Hasznos számodra ez a válasz?
 7/9 A kérdező kommentje:
Köszi a sok segítséget, már rájöttem magamtól is, hogy kellene. Tudom, hogy sok hülyeséget írtam, de azt is hozzátettem, hogy most kezdtem el tanulni...
2016. ápr. 30. 16:15
 8/9 anonim ***** válasza:
De ha jól értem akkor minden adat beolvasás után akarod ellenőrizni hogy jó-e az adat. Ebben az esetben nem a tömböt kellet volna átadnod hanem továbbra is az elemszámot. A HelyesAdatok függvényedet írd át úgy hogy egy számot várjon paraméterként ne egy egész tömböt és csak arra a számra nézed meg hogy jó-e.
2016. ápr. 30. 16:50
Hasznos számodra ez a válasz?
 9/9 A kérdező kommentje:
Köszi de már megoldottam rég, majdnem úgy ahogy mondtad ;)
2016. ápr. 30. 18:20

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!