Miért nem tudok egy tömbbe n darab adatot beolvasni?
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
int n;
int tomb[n];
cout<<"Mennyi az annyi?"<<endl;
cin>>n;
for (int i=0; i<n; i++){
cin>>tomb[i];
}
cout<<n<<endl;
}
N+1—gyel se működik. Segmentation fault-ot ír két int beolvasása után
Először is ne használj VLA-t. (variable length array)
Azaz hogy egy változóval határozod meg a tömb méretét.
Rengeteg hiba forrása lehet és egyáltalán nem ajánlott.
C++-ba már nem is lehet ilyet.
Határozz meg egy konstans max értéket, aminél az "n" nem lehet nagyobb.
Pl. így:
#define MAX_SIZE 1000
int tomb[MAX_SIZE];
és ellenőrzöd, hogy "n" nem lehet nagyobb ennél.
Felpontoztam mindenkit. Harmadiknak külön köszönet, végül úgy csináltam.
Utolsó kettőnek írom, hogy ha vitatkoznak nyugodtan tegyék itt. Szívesen tanulunk
Egyébként nem fut le jó outputtal a kód sajnos még mindig. Lehet én vagyok a hülye, de nem értem miért
#include <iostream>
#define MAX_SIZE 500
using namespace std;
int main(int argc, char *argv[])
{
int n;
int tomb[MAX_SIZE];
int max=tomb[0];
cout<<"Mennyi az annyi?"<<endl;
cin>>n;
for (int i=0; i<n; i++){
cin>>tomb[i];
}
for(int j=0; tomb[j]=tomb[n] ;j++){
if(tomb[j]>max){
max=tomb[j];
}
}
cout<<max<<endl;
}
Általában 0 az output. Nem működik.
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!