1
I have a problem in my program, I need it to show randomly an order of numbers (teams). The problem is that when I put a number greater than 10 it doesn’t show the 10, it only shows a few:
int cont1, aux, n, sorteio;
char op = 's';
setlocale(LC_ALL, "portuguese");
do{
printf("Digite a quintidade de equipes para serem sorteadas: ");
scanf("%d", &n);
printf("\n--------------------------------------------------------------------------------------------\n\n");
int matriz[2][n];
for(cont1 = 0; cont1 < n; cont1++){
matriz[1][cont1] = cont1 + 1;
matriz[2][cont1] = cont1 + 1;
}
srand(time(NULL));
for(cont1 = 0; cont1 < n; cont1++){
sorteio = rand() % n;
aux = matriz[2][cont1];
matriz[2][cont1] = matriz[2][sorteio];
matriz[2][sorteio] = aux;
}
for(cont1 = 0; cont1 < n; cont1++){
printf("Linha 1 da MATRIZ - Ordem das Apresentações: %d | ", matriz[1][cont1]);
printf("Linha 2 da MATRIZ - Número da Equipe: %d", matriz[2][cont1]);
printf("\n");
}
printf("\n--------------------------------------------------------------------------------------------\n\n");
printf("Deseja realizar outro sorteio? (S/N)> ");
fflush(stdin);
op = getchar();
fflush(stdin);
printf("\n--------------------------------------------------------------------------------------------\n\n");
}while((op == 'S') | (op == 's'));
}
You have declared int matrix[2][n]; and therefore the first index must be 0 or 1 and not 1 or 2 as used.
– anonimo