Salve a tutti, mi sono appena iscritto in questo forum, e spero che qualcuno possa aiutarmi. Dovrei fare un programma che simuli la Champions League, e non riesco, dopo aver "costruito" i gironi con squadre digitate dall'utente, a fare in modo che il sistema in maniera casuale scelga le prime due squadre. Mi spiego meglio, se fosse un algoritmo in cui tra le quattro squadre nel girone venissero scelte due a caso credo di non avere problemi, ma vorrei fare in modo che la prima squadra digitata abbia il 50% di probablità di passaggio del turno, la seconda il 30%, l terza il 15%, e l'ultima il 5%. Spero di essermi espresso bene, ora posto il codice(Per maggiore realismo ho scritto in inglese).
using namespace std;
#include <iostream>
#include <string.h>
#include <stdlib.h>
#include<fstream>
#include <time.h>
typedef char stringa[20];
typedef char Vettore[20];
typedef struct{stringa team;int position;}Girone;
typedef Girone Round[100];
void rounds(Round,int,int,int,int,int,int,int,int);
void shuffle(int[8]);
void deal(const int [8],const char *[]);
void rounds(Round r,int i,int j,int k,int l,int m,int x,int q,int w){
for(i=0;i<4;i++){
cout<<"Please insert the team n."<<i+1<<" allowed in first round : "<<endl;
cin>>r[i].team;
cout<<endl;}
cout<<"Group 1 is: "<<endl;
for(i=0;i<4;i++){
cout<<r[i].team<<endl;}
cout<<endl<<endl;
for(j=0;j<4;j++){
cout<<"Please insert the team n."<<j+1<<" allowed in second round : "<<endl;
cin>>r[j].team;
cout<<endl;}
cout<<"Group 2 is: "<<endl;
for(j=0;j<4;j++){
cout<<r[j].team<<endl;}
cout<<endl<<endl;
for(k=0;k<4;k++){
cout<<"Please insert the team n."<<k+1<<" allowed in third round : "<<endl;
cin>>r[k].team;
cout<<endl;}
cout<<"Group 3 is: "<<endl;
for(k=0;k<4;k++){
cout<<r[k].team<<endl;}
cout<<endl<<endl;
for(l=0;l<4;l++){
cout<<"Please insert the team n."<<l+1<<" allowed in fourth round : "<<endl;
cin>>r[l].team;
cout<<endl;}
cout<<"Group 4 is: "<<endl;
for(l=0;l<4;l++){
cout<<r[l].team<<endl;}
cout<<endl<<endl;
for(m=0;m<4;m++){
cout<<"Please insert the team n."<<m+1<<" allowed in fifth round : "<<endl;
cin>>r[m].team;
cout<<endl;}
cout<<"Group 5 is: "<<endl;
for(m=0;m<4;m++){
cout<<r[m].team<<endl;}
cout<<endl<<endl;
for(x=0;x<4;x++){
cout<<"Please insert the team n."<<x+1<<" allowed in sixth round : "<<endl;
cin>>r[x].team;
cout<<endl;}
cout<<"Group 6 is: "<<endl;
for(x=0;x<4;x++){
cout<<r[x].team<<endl;}
cout<<endl<<endl;
for(q=0;q<4;q++){
cout<<"Please insert the team n."<<q+1<<" allowed in seventh round : "<<endl;
cin>>r[q].team;
cout<<endl;}
cout<<"Group 7 is: "<<endl;
for(q=0;q<4;q++){
cout<<r[q].team<<endl;}
cout<<endl<<endl;
for(w=0;w<4;w++){
cout<<"Please insert the team n."<<w+1<<" allowed in eigth round : "<<endl;
cin>>r[w].team;
cout<<endl;}
cout<<"Group 8 is: "<<endl;
for(w=0;w<4;w++){
cout<<r[w].team<<endl;}
cout<<endl<<endl;}
int main(){
Vettore team;
Round r;
int i,j,k,l,m,x,q,w;
char tasto;
cout<<"***********WELCOME TO THE UEFA CHAMPIONS LEAGUE!**********"<<endl<<endl;
cout<<"Now, let's create the rounds."<<endl<<endl;
cout<<"You will make eight of them, dignified by four teams, one of them belonging to first class, another of them belonging to second class, and so on."<<endl;
cout<<"Remember that teams from the same country MAY NOT be drawn into groups together."<<endl<<endl;
cout<<"Please press a random key to continue"<<endl;
cin>>tasto;
rounds(r,i,j,k,l,m,x,q,w);
cout<<endl<<": "<<endl<<endl;
srand(time(NULL));
int I;
I=(rand()%10)+1;
cout<<I<<endl;
if(0<I<5)cout<<r[0].team;
if(5<I<8)cout<<r[1].team;
if(8<I<9,5)cout<<r[2].team;
if(9,5<I<10)cout<<r[3].team;
cout<<endl;
Perdonatemi la poca leggibilità, ma ho cercato, per ovviare al problema, di creare una variabile che assuma come valore massimo 10, e quindi, in base a questo il sistema sceglieva quale squadra "passava". Non mi dà errore, ma il risultato è che secondo lui passano tutte e 4. Grazie in anticipo.