Kezdőoldal » Számítástechnika » Programozás » Írja ki az első 0 érték...

Írja ki az első 0 érték helyét! Hogyan kell ezt megoldani c++-ban?

Figyelt kérdés

A feladat korábbi részében kéri, hogy töltsük fel a tömböt véletlen számokkal. Itt most -10 és +100 között csináltam.

A nulladik érték helyét a 101. v 102.helyre teszi. Nyilván valami nagyon rosszul van írva, de mi az ?

[link]

#include <iostream>

#include <ctime>

#include <cstdlib>

using namespace std;

int main ()


{

srand (time(NULL));

int szamok[100];

int i;

for (i=0; i<100; i++)

{

szamok[i]=rand()%(100-(-10)+1)+(-10);

cout<<szamok[i]<<" ";

}

cout<<endl;

int min=szamok[0];

for (i=1; i<=100; i++)

{

if(szamok[i]<=min)

min=szamok[i];

}

cout<<"A nulla helye: "<<i<<" . hely"<<endl;

if(szamok[i]<0)

min=szamok[i];

cout<<"Nincs benne nulla."<<endl;

return 0;

}



2017. márc. 27. 16:41
1 2
 11/13 anonim ***** válasza:
És nem lehet lapozni abban a könyvben, vagy mi a k\/rvák f#sza van?
2017. márc. 27. 19:37
Hasznos számodra ez a válasz?
 12/13 tabaki ***** válasza:

Ez meg mire jó?

szamok[i] = rand() % (100 - (-10) + 1) + (-10);


Ha kibontom a zárójeleket, szerintem ennyi marad:

szamok[i] = rand() % 111 - 10;


Valamivel átláthatóbb, hogy mit akarsz... Nem lehetett volna mindjárt ezzel kezdeni?


@Többieknek:

Nem tudom, van-e köztetek valaki, aki tudja, hogy a fordító hogyan optimalizál, mert nekem már régóta piszkálja a csőröm, hogy egy ilyen esetben minek egy konstans értéket százszor kiszámolni a ciklusban -- de el tudom képzelni, hogy a fordító észreveszi, és megtakarítja a fölösleges műveleteket. A magam részéről korrektebbnek találnám a ciklus előtt egyszer kiszámolni, és a kész értéket használni.

2017. márc. 28. 00:17
Hasznos számodra ez a válasz?
 13/13 tabaki ***** válasza:

Csak azért, hogy ne pont olyan legyen, mint SimkoL programja:


#include <iostream>

#include <ctime>

#include <cstdlib>

using namespace std;


int main ()

{

srand (time(NULL));

int szamok[100];

int nulla = -1;

for (int i = 99; i > -1; i--)

      {

      szamok[i] = rand() % 111 - 10;

      if(szamok[i] == 0) nulla = i;

      }

for (int i = 0; i < 100; i++) cout << szamok[i] << " ";

cout << endl;

if(nulla == -1)

      cout << "Nincs benne nulla ertek.\n";

else

      cout << "Az elso nulla ertek helye: " << nulla + 1 << ". hely\n";

cin >> nulla; //getchar();

return 0;

}

2017. márc. 28. 02:38
Hasznos számodra ez a válasz?
1 2

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!