Enviado em 14/11/2011 - 22:13h
bom sou novo aqui...void EMBARALHA (int *cartas[],int *baralho[]); { int x; cartas[0]=x=S_CARTA(); baralho[x]=1;//marcando a carta escolhida 1 == carta jah foi escolhida // 0 == carta que pode ser sorteada x=S_CARTA();//inicio sorteio da carta while(baralho[x]==1){ x=S_CARTA();// } baralho[x]=1; cartas[3]=x;//fim carta recebe o valor x=S_CARTA();//inicio sorteio da carta while(baralho[x]==1){ x=S_CARTA();// } baralho[x]=1; cartas[1]=x;//fim carta recebe o valor x=S_CARTA();//inicio sorteio da carta while(baralho[x]==1){ x=S_CARTA();// } baralho[x]=1; cartas[4]=x;//fim carta recebe o valor x=S_CARTA();//Inicio sorteio da carta while(baralho[x]==1){ x=S_CARTA();// } baralho[x]=1; cartas[6]=x;//fim carta recebe o valor x=S_CARTA();//Inicio sorteio da carta while(baralho[x]==1){ x=S_CARTA();// } baralho[x]=1; cartas[2]=x;//fim carta recebe o valor x=S_CARTA();//Inicio sorteio da carta while(baralho[x]==1){ x=S_CARTA();// } cartas[5]=x;//fim carta recebe o valor return; }
Enviado em 14/11/2011 - 22:47h
void EMBARALHA (int *a,int *b); { int x; *a=x=S_CARTA(); *(b+x)=1;//marcando a carta escolhida 1 == carta jah foi escolhida // 0 == carta que pode ser sorteada x=S_CARTA();//inicio sorteio da carta while(*(b+x)==1){ x=S_CARTA();// } *(b+x)=1; *(a+1)=x;//fim carta recebe o valor x=S_CARTA();//inicio sorteio da carta while(*(b+x)==1){ x=S_CARTA();// } *(b+x)=1; *(a+1)=x;//fim carta recebe o valor x=S_CARTA();//inicio sorteio da carta while(*(b+x)==1){ x=S_CARTA();// } *(b+x)=1; *(a+1)=x;//fim carta recebe o valor x=S_CARTA();//Inicio sorteio da carta while(*(b+x)==1){ x=S_CARTA();// } *(b+x)=1; *(a+1)=x;//fim carta recebe o valor x=S_CARTA();//Inicio sorteio da carta while(*(b+x)==1){ x=S_CARTA();// } *(b+x)=1; *(a+1)=x;//fim carta recebe o valor x=S_CARTA();//Inicio sorteio da carta while(*(b+x)==1){ x=S_CARTA();// } *(a+1)=x;//fim carta recebe o valor return; }
Enviado em 14/11/2011 - 23:13h
Seu código está bagunçado e um pouco complicado de entender. Use uma marcação do tipoEnviado em 15/11/2011 - 01:17h
Obrigado pelas dicas espero conseguir ser mais claro agora.int S_CARTA() { int i,num; /* inicializar o gerador de números aleatórios */ /* com time(NULL) */ srand(time(NULL)); for (i=0; i<5; i++) { /* para gerar números aleatórios de 0 a 3 */ num=rand() %40;/*não se chega ao valor de 4... o sorteio é entre 0 e 3*/ num=num+1; } return num; }
x=S_CARTA();//sorteia a carta baralho[x]=1;//marca no vetor carta[0]=x;//copia o n da carta x=S_CARTA();//sorteia outra carta while(baralho[x]==1){ x=S_CARTA();} carta[1]=x;//copia o n da carta
Enviado em 15/11/2011 - 11:01h
Bom, existem várias formas de se fazer isso. Inclusive mantendo uma lista dos valores que podem ser sorteados e retirando eles da lista mais tarde. Pode-se usar um vetor como lista também e sortear posições nele e retirar o valor de lá (marcando com um -1). No entanto, eu fiz algo seguindo um pouco a sua lógica.Programa IRPF - Guia de Instalação e Resolução de alguns Problemas
Criando uma Infraestrutura para uma micro Empresa
Criar entrada (menuentry) ISO no Grub
Como gerar qualquer emoji ou símbolo unicode a partir do seu teclado
Instalando o Pi-Hole versão v5.18.4 depois do lançamento da versão v6.0
Instalar o VIM 9.1 no Debian 12
Como saber o range de um IP público?
Muitas dificuldades ao instalar distro Linux em Notebook Sony Vaio PCG-6131L (VPCEA24FM)
Discussão sobre monitoramento da integridade de arquivos (6)
Problema no boot do Linux Mint Cinnamon 22 (4)
Atualização do Google Chrome do Ubuntu [RESOLVIDO] (2)
Instalei Windows 11 e não alterou o Grub do Debian (1)
Jogos baixados na Central de Aplicativos mas que não abrem (0)