d.p.p 0 Denunciar post Postado Junho 18, 2010 Estou fazendo um trabalho que preciso simular a entrada de dados de apostadores e sorteio da megasena, conferindo se saiu ou nao um ganhador... por enquanto meu código está assim #include <stdio.h>; #include <stdlib.h>; #include <string.h>; #include <time.h>; //FUNÇAO PRINCIPAL main() { char nome[100][50], cidade[100][50], estado[100][50]; int cont=0, dezenas[100][6], contdados=0; //DADOS DO JOGADOR printf("DIGITE SEU NOME:\n"); fflush(stdin); gets(nome[contdados]); while(nome[contdados][0]!='\0') { printf("DIGITE SUA CIDADE:\n"); fflush(stdin); gets(cidade[contdados]); printf("DIGITE SEU ESTADO:\n"); fflush(stdin); gets(estado[contdados]); //APOSTAS DO JOGADOR for(cont=0;cont<6;cont++) { printf("Digite a dezena apostada numero %d: \n",cont+1); scanf("%d",&dezenas[cont]); } contdados++; printf("DIGITE SEU NOME:\n"); fflush(stdin); gets(nome[contdados]); } //SORTEIO { int seq[6]={0}, i, j; int a; srand(time(NULL)); seq[0]=(rand()%60)+1; i=1; while(i<6){ a=(rand()%60)+1; j=0; while((a!=seq[j]) && (seq[j]!=0) && (j<=6)) j++; if ((seq[j]==0) && (j<=6)){ seq[j]=a; i++; } } for(i=0; i<6; i++) { printf("Numero sorteado %d - %d\n", i+1, seq[i]); } } //ORDEM CRESCENTE DOS NUMEROS SORTEADOS E DAS APOSTAS //IMPRESSAO DE DADOS system("PAUSE"); } falta colocar os numeros apostados e sorteados em ordem crescente(o enunciado do trab pede isso),verificar se houve ganhadores e se sim, imprimir os dados do ganhador. Só que nessa parte eu to tomando uma surra... ps: faço eng civil, é uma cadeira de programação, portanto se puderem ajudar da forma mais clara possível ficaria muito grato, pois meus conhecimentos são limitados!! agradecendo desde ja abraçoo Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Junho 19, 2010 Não use fflush(stdin) e nem gets. Tem um tópico no fórum falando sobre isso. P/ ordenar coisas você pode procurar por insertion sort. Compartilhar este post Link para o post Compartilhar em outros sites
d.p.p 0 Denunciar post Postado Junho 19, 2010 mmm vou dar uma lida... está nessa seção mesmo? a minha professora que disse pra ursar fflush e gets.. e quanto a verificação se houve algum ganhador? alguma luz? obg abrs Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Junho 19, 2010 Se sua professora disse p/ usar isso, peça p/ ela se jogar fora ;) http://forum.imasters.com.br/index.php?/topic/336835-tutorial-systempause-e-fflushstdin/ Oras, use um if p/ verificar se o cara acertou os números... Compartilhar este post Link para o post Compartilhar em outros sites
d.p.p 0 Denunciar post Postado Junho 19, 2010 mmm, um if que compare simultaneamente todos os numeros apostados com os numeros sorteados certo? mas como eu faço essa comparação para todas as dezenas de todos os apostadores? nao entendo como posso comparar as dezenas do apostador1, do apostador2, do apostador3, etc... com as dezenas sorteadas! e no caso eu teria que colocar qualquer código em void fora da funçao principal, qual seria a mais recomendada? eu teria que usar ponteiros depois? obrigado pela ajuda! cara ja li sobre como colocar em ordem crescente, mas to apanhando... alguem tem como dar um help? esse erro significa o que? cannot convert `int (*)[6]' to `int*' for argument `1' to `void ordenar_vetor(int*, int)' tá assim #include <stdio.h>; #include <stdlib.h>; #include <string.h>; #include <time.h>; void ordenar_vetor(int v[], const int tamanho=6) { int i, j, temp; for(i = 0; i < tamanho - 1; i++){ for(j = 0; j < tamanho - 1; j++){ if(v[j] > v[j + 1]){ temp = v[j]; v[j] = v[j + 1]; v[j + 1] = temp; } } } } //FUNÇAO PRINCIPAL main() { char nome[100][50], cidade[100][50], estado[100][50]; int cont=0, dezenas[100][6], contdados=0; //DADOS DO JOGADOR printf("DIGITE SEU NOME: "); fflush(stdin); gets(nome[contdados]); while(nome[contdados][0]!='\0') { printf("DIGITE SUA CIDADE: "); fflush(stdin); gets(cidade[contdados]); printf("DIGITE SEU ESTADO: "); fflush(stdin); gets(estado[contdados]); //APOSTAS DO JOGADOR for(cont=0;cont<6;cont++) { printf("Digite a dezena apostada numero %d: ",cont+1); scanf("%d",&dezenas[cont]); } int tamanho=6, i; /* ordena o vetor em ordem crescente */ ordenar_vetor(dezenas, tamanho); /* mostra o vetor v ordenado */ printf("\n\nVetor v em ordem crescente:\n"); for(i = 0; i < tamanho; i++) printf("%d ", dezenas[i]); contdados++; printf("DIGITE SEU NOME: "); fflush(stdin); gets(nome[contdados]); } //SORTEIO { int seq[6]={0}, i, j; int a; srand(time(NULL)); seq[0]=(rand()%60)+1; i=1; while(i<6){ a=(rand()%60)+1; j=0; while((a!=seq[j]) && (seq[j]!=0) && (j<=6)) j++; if ((seq[j]==0) && (j<=6)){ seq[j]=a; i++; } } for(i=0; i<6; i++) { printf("Numero sorteado %d - %d\n", i+1, seq[i]); } } //ORDEM CRESCENTE DOS NUMEROS E DAS APOSTAS //IMPRESSAO DE DADOS system("PAUSE"); } quanto ao fflush e ao systempause, vou trocar tudo ao final do trab alguma luz????? Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Junho 21, 2010 void ordenar_vetor(int v[], const int tamanho=6) se fosse pra definir um valor assim ele nem precisaria ser parametro neh. você deu uma lida sobre funções? []s Compartilhar este post Link para o post Compartilhar em outros sites