Írja ki az első 0 érték helyét! Hogyan kell ezt megoldani c++-ban?
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 ?
#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;
}
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.
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;
}
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!