Zad.
Program w C++ który będzie losował liczby od 0 do 49
Program ma zrobic 6 losowań po 6 liczb od 0 do 49
sugestia:
Losowanie 1: 1,2,3,4,5,6 // 6 losowych liczb z przedziału 0 - 49
Losowanie 2: 1,2,3,4,5,6 // 6 losowych liczb z przedziału 0 - 49
Losowanie 3: 1,2,3,4,5,6 // 6 losowych liczb z przedziału 0 - 49
Losowanie 4: 1,2,3,4,5,6 // 6 losowych liczb z przedziału 0 - 49
Losowanie 5: 1,2,3,4,5,6 // 6 losowych liczb z przedziału 0 - 49
Losowanie 6: 1,2,3,4,5,6 // 6 losowych liczb z przedziału 0 - 49
Rozwiązanie:
#include <iostream.h>
#include <conio.h>
#include <fstream.h>
main()
{
int i,b,k;
ofstream losowanie("losowanie.txt");
srand(time(NULL));
cout<<"TOTO LOTEK"<<endl<<endl;
losowanie<<"TOTO LOTEK"<<"\n\n6 losowań po 6 liczb"<<endl<<endl;
for (i=0; i<6; i++)
{
cout<<"Losowanie "<<i+1<<": ";
losowanie<<"Losowanie "<<i+1<<": ";
for(k=0; k<6; k++)
{
b=rand()%49+1;
cout<<b<<" ";
losowanie<<b<<", ";
losowanie.close();
losowanie.open("losowanie.txt", ios::app);
}
cout<<endl;
losowanie<<endl;
}
losowanie.close();
getch();
}
Rozwiązanie, Sposób 2
Z tym ze tu jest pytanie o ilość losowań,
ale łatwo to wyłączyć. Efekt nudow.
#include <iostream>
#include <conio.h>
#include <math.h>
using namespace std;
class lotek{
public:
unsigned int liczba;
int ilosc;
void losowanie();
void pytanie();
};
void lotek::pytanie(){
cout<<"Ile losowan?: ";
cin>>ilosc;
cin.clear();
cout<<endl;
}
void lotek::losowanie(){
for (int i=0; i<ilosc; i++){
for(int k=0; k<6; k++){
liczba=rand()%49+1;
cout<<liczba<<" ";
}
cout<<endl;
}
}
int main(){
lotek metoda;
metoda.pytanie();
metoda.losowanie();
system("pause");
}
Ps.
Napisany program jest ze zwracaniem aby był on bez zawracania to
Najprościej będzie zrobić w ten sposób, że po wylosowaniu liczby
sprawdzasz czy już takiej nie było. Jeżeli była, to losujesz jeszcze
raz, jeżeli nie, to dodajesz ją do wylosowanych. Jak to zrobić? Spróbuj
pokombinować sam, więcej się nauczysz.