Mi ebben a C++ programrészletben a hiba?
Figyelt kérdés
Futtatáskor memóriaszemét jelenik meg. Hogyan kellene átírnom, hogy kiírja a véletlen számokat ?
#include<iostream>
#include<ctime>
#include<cstdlib>
using namespace std;
int main ()
{
srand(time(0));
int szam[100];
for (int i=0;i<99; i=1+1)
{
szam[i]=rand()%(1000-100+1)+100;
cout<<szam<<endl;
}
return 0;
}
2017. márc. 13. 23:11
11/12 tabaki válasza:
„helyesen i=i+1”
Nem kenyerem a C++, de nekem ez kissé idétlenül hat, még ha működik is. Egy egész léptetésre nem összeadást, hanem a ++ operátort szokás használni, vélhetőleg okkal, mondjuk így:
c++
(Hm? Ült a nyelv névadóinak poénja?) De összeadásnál is inkább a „césebb” i += 5 forma dívik.
100 - 10 + 1 pedig szerintem mindig 91, fölösleges százszor kiszámoltatnod a ciklusban.
12/12 tabaki válasza:
Ja, azért azt illik megjegyeznem, hogy nem tudom, hogyan optimalizál a fordító -- lehet, hogy észreveszi az állandóan változatlan összeadást, és ő helyettesíti be a konstans értékkel.
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!
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!