Miért működik rosszul a program?
//main.cpp
#include<iostream>
#include<cstdlib>
using std::cout;
using std::cin;
int main(){
srand(time(0));
unsigned short szamok[80];
unsigned short hanySzammalJatszok;
for(unsigned short i = 0; i < 80; ++i)
szamok[i] = i+1;
do{
cout << "Hany szammal jatszol(1-7): ";
cin >> hanySzammalJatszok;
if((hanySzammalJatszok < 1) || (hanySzammalJatszok > 7))
cout << "1 tol kisebb es 7 tol nagyobb szammal nem jatszhatsz\n";
else
break;
}while(1);
unsigned short nyeroSzamaid[hanySzammalJatszok];
for(unsigned short i = 0; i < hanySzammalJatszok; ++i)
nyeroSzamaid[i] = 0;
for(unsigned short i = 0, temp; i < hanySzammalJatszok; ++i){
cout << i+1 << " nyeroszamod(1-80): ";
cin >> temp;
if((temp < 1) || (temp > 80)){
cout << "Csak 0 es 81 kozotti szamokat adhatsz be!\n";
--i;
}
else{
for(unsigned short j = 0; j < i+1; ++j){
if(nyeroSzamaid[j] == temp){
cout << "Nem adhatsz be ket ugyanolyan szamot!\n";
--i;
break;
}
}
nyeroSzamaid[i] = temp;
}
}
return 0;
}
-------------
Ezzel a résszel van gond:
Az a baj,hogy valamikor bele enged tenni olyan értéket is a nyeroSzamaid tömmbe amik már vannak benne.
Mi lehet a baj:
for(unsigned short i = 0, temp; i < hanySzammalJatszok; ++i){
cout << i+1 << " nyeroszamod(1-80): ";
cin >> temp;
if((temp < 1) || (temp > 80)){
cout << "Csak 0 es 81 kozotti szamokat adhatsz be!\n";
--i;
}
else{
for(unsigned short j = 0; j < i+1; ++j){
if(nyeroSzamaid[j] == temp){
cout << "Nem adhatsz be ket ugyanolyan szamot!\n";
--i;
break;
}
}
nyeroSzamaid[i] = temp;
}
}
kijavítottam:
for(unsigned short i = 0, temp; i < hanySzammalJatszok; ++i)
{
cout << i+1 << " nyeroszamod(1-80): ";
cin >> temp;
if((temp < 1) || (temp > 80))
{
cout << "Csak 0 es 81 kozotti szamokat adhatsz be!\n";
--i;
}
else
{
bool voltMarIlyenSzam = false;
for(unsigned short j = 0; j < i+1; ++j)
{
if(nyeroSzamaid[j] == temp)
{
cout << "Nem adhatsz be ket ugyanolyan szamot!\n";
--i;
voltMarIlyenSzam = true;
break;
}
}
if(voltMarIlyenSzam == false)
nyeroSzamaid[i] = temp;
}
}
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!