Peguei os problemas sugeridos para resolver. Tentei fazer tudo em C msm e to enfrento alguns problemas para pegar os Inputs.Me retorna segmentation fault no terminal.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
int main(int argc, char const *argv[])
{
int numPartidas = 1;
int contaRodada = 1;
int contaColunas = 0;
char** nomeJogadores;
int** numeroDedos;
nomeJogadores =(char **) malloc( 2 * sizeof(char *));
numeroDedos =(int **)malloc(sizeof(int *));
numeroDedos[contaColunas] = (int*)malloc(3 * sizeof(int));
while (numPartidas != 0)
{
scanf("%d",&numPartidas);
if(numPartidas == 0) break;
//coluna da matriz de numeros
nomeJogadores[contaColunas] = (char *)malloc(10 * sizeof(char));
scanf("%s",nomeJogadores[contaColunas]);
printf("%s\n",nomeJogadores[contaColunas]);
contaColunas++;
nomeJogadores[contaColunas] = (char *) malloc(10 * sizeof(char));
scanf("%s",nomeJogadores[contaColunas]);
contaColunas++;
for (int i = 0; i < numPartidas; i++)
{
numeroDedos[contaColunas][0] = numPartidas;
scanf("%d %d",&numeroDedos[contaColunas][1],&numeroDedos[contaColunas][2]);
}
nomeJogadores = (char **)realloc( nomeJogadores,2 * contaRodada * sizeof(char *));
numeroDedos =(int **)realloc(numeroDedos, contaRodada *sizeof(int *) );
contaRodada++;
}
for (int i = 0; i < contaRodada - 1 ; i++)
{
printf("{ %s }\n",nomeJogadores[i]);
/* code */
}
for (int i = 0; i < contaRodada - 1; i++)
{
for(int j =0 ;j<3;j++){
printf("{%d",numeroDedos[i][j]);
printf(",%d",numeroDedos[i][j+1]);
printf("%d,}\n",numeroDedos[i][j+2]);
}
/* code */
}
/* code */
return 0;
}
Resolvi guardar todos os valores de nomes do desafio em um array de strings. Como o primeiro sempre é par, todo índice ímpar o valor seria par então ficaria tranquilo de de percorrer a matriz. Como pode ver dentro do while, antes de capturar a string, eu aloco a memória da string para as 2 linhas da matriz alocadas antes do laço. Para a primeira linha da matriz está tudo funcionando perfeitamente.Ja na segunda esta me retornando segmentation fault no terminal. Mesmo tendo alocaodo o ponteiro de ponteiro multiplicando por 2 não consigo acessar o índice 1. O zero vai tranquilamente, mandei printar pra ver se tava indo e ta tudo ok.
nomeJogadores =(char **) malloc( 2 * sizeof(char *));
/////////////////////////////////////////////////////////////
//quando acesso o índice para alocar memória para a string da ok.
//Mas quando passo a referência para o scanf do índice 1 da pau.
/////////////////////////////////////////////////////////
nomeJogadores[1] = (char *) malloc(10 * sizeof(char)); /
scanf("%s",nomeJogadores[1]); /
/
////////////////////////////////////////////////////