Olá, estou com duvida em uma questão de como fazer uma alocação dinâmica em um programa na qual faz sorteios de números, onde o usuário faz aposta de até 20 números e de 0 a 100.A parte em especifico que estou com duvida é onde o programa compara os números sorteados com o(os) número(os):
int compara_aposta(int *aposta,int *sorteio,int *val_certos, int na, int ns)
{
//realocar memoria para val_certos
}
EDIT: Após isso tudo, o meu receber tais valores o programa deverá sortear, aleatoriamente, 20 valores (entre 0 e 100). Após o sorteio, o programa deverá comparar os valores apostados com os sorteados e retornar para o usuário a quantidade de acertos e os números que ele acertou.
Código completo :
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
void ler_aposta(int *aposta,int n)
{
int i;
printf("informe o(os) %d valor(es) certo(os) (0-100) \n",n);
for(i=0;i<n;i++)
{
scanf("%d",&aposta[i]);
}
}
void sorteio_valores(int *sorteio,int n)
{
int i;
srand(time(NULL));
for(i=0;i<n;i++)
{
sorteio[i]=rand()%100;
}
}
int compara_aposta(int *aposta,int *sorteio,int *val_certos, int na, int ns)
{
//realocar memoria para val_certos
}
int main(void) {
int i,nap,*aposta,sorteio[20],*val_certos,qtd_certos;
printf("Informe a quantidade de números a serem apostados: \n");
scanf("%d",&nap);
aposta=(int *) malloc(nap*sizeof(int));
val_certos=(int) malloc(i*sizeof(int));
ler_apostas(aposta,nap);
sorteio_valores(sorteio,20);
qtd_certos=compara_apostas(aposta,sorteio,val_certos,nap,20);
printf("Valores acertados: \n");
for(i=0;i<20;i++);
{
printf("%d",sorteio[i]);
}
printf("valores acertados: \n");
if(qtd_certos==0)
{
printf("Não acertou nada. \n");
}
else{
for(i=0;i<qtd_certos;i++)
{
printf("%d \n",val_certos[i]);
}
}
return 0;
}
Obs: Caso tenha algo faltando em meu código, aceito ajudas e dicas.