wagner9 Postado Abril 22, 2016 Denunciar Share Postado Abril 22, 2016 (editado) Olá amigos estou precisando imprimir o maior numero dos números aleatórios gerados. Mas dá erro. Sou iniciante em programação, perdoe os erros. #include <stdio.h> #include <stdlib.h> int main() { int jogadores, numero1, numero2, numero3, soma = 0, i , opcao; int lista[8]; int maior = lista[0]; printf("Informe a quantidade de jogadores (2 a 8):"); scanf("%d", &jogadores); for(i=0; i<jogadores; i++){ printf("\nJogador: %d", i+1); numero1 = rand() % 100; // gerando um número aleatório //printf("1o num. aleatorio entre 0 e 100: %d\n", dado1); numero2 = rand() % 100; // gerando outro número aleatório //printf("2o num. aleatorio entre 0 e 100: %d\n", numero2); numero3 = rand() % 100; // gerando outro número aleatório //printf("2o num. aleatorio entre 0 e 100: %d\n", numero3); soma = numero1+numero2+numero3; printf("\nSoma: %d\n",soma); } for(i=1; i<8; i++){ if(maior < lista)maior = lista; }printf("Maior = %d\n", maior); system("pause"); } Editado Abril 22, 2016 por wagner9 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 JeanR Postado Abril 23, 2016 Denunciar Share Postado Abril 23, 2016 Não sei o que o seu programa deve fazer, mas voce esta comparando uma variavel inteira com um vetor de inteiro sem especificar o indice do vetor if(maior < lista)maior = lista; } troque por if(maior < lista)maior = lista; } você não atribui nem um valor ao seu vetor lista também não entendi isso Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 wagner9 Postado Abril 24, 2016 Autor Denunciar Share Postado Abril 24, 2016 3 horas atrás, JeanR disse: Não sei o que o seu programa deve fazer, mas voce esta comparando uma variavel inteira com um vetor de inteiro sem especificar o indice do vetor if(maior < lista)maior = lista; } troque por if(maior < lista)maior = lista; } você não atribui nem um valor ao seu vetor lista também não entendi isso Olá amigo, meu programa precisa gerar 3 numeros aleatorios de 1 a 100 e a somá-las a cada jogador especificado pelo usuário. E então imprimir o jogador e a maior soma. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Aristóteles Postado Abril 24, 2016 Denunciar Share Postado Abril 24, 2016 #include <stdio.h> #include <stdlib.h> #include <time.h> #include <stdbool.h> int main() { bool SomasIguais; int NumeroDeJogadores; int AuxDo=0; do { if (AuxDo>0) { printf ("Numero de jogadores invalida!\n"); } printf ("Digite a quantidade de jogadores (2-8): "); scanf ("%d", &NumeroDeJogadores); printf ("\n"); AuxDo ++; }while (NumeroDeJogadores > 8 || NumeroDeJogadores < 2); int jogador [NumeroDeJogadores], backup=0, NumerosGerados [3], SomaDosNumerosGeradosDeCadaJogador [NumeroDeJogadores], i, j; for (i=0; i<NumeroDeJogadores; i++) { for (j=0; j<3; j++) { NumerosGerados[j] = 1 + rand () % 100; backup = backup + NumerosGerados[j]; } SomaDosNumerosGeradosDeCadaJogador [i] = backup; jogador[i] = SomaDosNumerosGeradosDeCadaJogador[i]; } //Essa função checa o maior valor e o coloca no primeiro elemento do array. Se existirem valores iguais estarão um adiante do outro. for (i=0; i<NumeroDeJogadores; i++) { for (j=i+1; j<NumeroDeJogadores; j++) { if (SomaDosNumerosGeradosDeCadaJogador[i] < SomaDosNumerosGeradosDeCadaJogador [j]) { backup = SomaDosNumerosGeradosDeCadaJogador[i]; SomaDosNumerosGeradosDeCadaJogador [i] = SomaDosNumerosGeradosDeCadaJogador [j]; SomaDosNumerosGeradosDeCadaJogador [j] = backup; } } } //verifica se há valores iguais. for (i=0; i<NumeroDeJogadores; i++) { for (j=i+1; j<NumeroDeJogadores; j++) { } if (SomaDosNumerosGeradosDeCadaJogador[i] == SomaDosNumerosGeradosDeCadaJogador [j]) { SomasIguais = true; printf ("Existem maiores valores iguais dentre os jogadores: \n\n"); break; } else { SomasIguais = false; } } if (SomasIguais==false) printf ("não existem somas iguais dentre os numeros dos jogadores. \n\n"); //verifica o(s) jogador(es) com maior soma. for (i=0; i<NumeroDeJogadores; i++) { if (jogador[i]==SomaDosNumerosGeradosDeCadaJogador[0] && SomasIguais==false) { printf ("Maior soma foi gerada pelo jogador %d, que é %d", i, SomaDosNumerosGeradosDeCadaJogador[0]); break; } if (jogador[i]==SomaDosNumerosGeradosDeCadaJogador[0] && SomasIguais==true) { printf ("As maior soma é %d, e foi gerada pelos jogadores: ", SomaDosNumerosGeradosDeCadaJogador[0]); for (j=i; j<NumeroDeJogadores; j++) { if (jogador[j]==SomaDosNumerosGeradosDeCadaJogador[0]) { printf ("%d,", j); } } } } printf (".\n\n"); return 0; } Apenas corrija essa parte, uma falha bem oculta: for (j=i+1; j<NumeroDeJogadores; j++) { } if (SomaDosNumerosGeradosDeCadaJogador[i] == SomaDosNumerosGeradosDeCadaJogador [j]) { SomasIguais = true; printf ("Existem maiores valores iguais dentre os jogadores: \n\n"); break; } Esse if é dentro do for: for (j=i+1; j<NumeroDeJogadores; j++) { if (SomaDosNumerosGeradosDeCadaJogador[i] == SomaDosNumerosGeradosDeCadaJogador [j]) { SomasIguais = true; printf ("Existem maiores valores iguais dentre os jogadores: \n\n"); break; } } O else também. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Aristóteles Postado Abril 24, 2016 Denunciar Share Postado Abril 24, 2016 Outra coisa, nessa parte: SomaDosNumerosGeradosDeCadaJogador [i] = backup; jogador[i] = SomaDosNumerosGeradosDeCadaJogador[i]; é preciso zerar o backup! SomaDosNumerosGeradosDeCadaJogador [i] = backup; jogador[i] = SomaDosNumerosGeradosDeCadaJogador[i]; backup=0; Bom, fazendo esses ajustes funciona. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Aristóteles Postado Abril 24, 2016 Denunciar Share Postado Abril 24, 2016 Código FINAL: #include <stdio.h> #include <stdlib.h> #include <time.h> #include <stdbool.h> int main() { bool SomasIguais; int NumeroDeJogadores; int AuxDo=0; do { if (AuxDo>0) { printf ("Numero de jogadores invalida!\n"); } printf ("Digite a quantidade de jogadores (2-8): "); scanf ("%d", &NumeroDeJogadores); printf ("\n"); AuxDo ++; }while (NumeroDeJogadores > 8 || NumeroDeJogadores < 2); srand (time(NULL)); int jogador [NumeroDeJogadores], backup=0, NumerosGerados [3], SomaDosNumerosGeradosDeCadaJogador [NumeroDeJogadores], i, j; for (i=0; i<NumeroDeJogadores; i++) { for (j=0; j<3; j++) { NumerosGerados[j] = (1 + rand () % 100); backup = backup + NumerosGerados[j]; } SomaDosNumerosGeradosDeCadaJogador [i] = backup; jogador[i] = SomaDosNumerosGeradosDeCadaJogador[i]; backup=0; } //Essa função checa o maior valor e o coloca no primeiro elemento do array. Se existirem valores iguais estarão um adiante do outro. for (i=0; i<NumeroDeJogadores; i++) { for (j=i+1; j<NumeroDeJogadores; j++) { if (SomaDosNumerosGeradosDeCadaJogador[i] < SomaDosNumerosGeradosDeCadaJogador [j]) { backup = SomaDosNumerosGeradosDeCadaJogador[i]; SomaDosNumerosGeradosDeCadaJogador [i] = SomaDosNumerosGeradosDeCadaJogador [j]; SomaDosNumerosGeradosDeCadaJogador [j] = backup; } } } //verifica se há valores iguais. for (i=0; i<NumeroDeJogadores; i++) { for (j=i+1; j<NumeroDeJogadores; j++) { if (SomaDosNumerosGeradosDeCadaJogador[i] == SomaDosNumerosGeradosDeCadaJogador [j]) { SomasIguais = true; printf ("Existem valores iguais dentre os jogadores: \n\n"); break; } else { SomasIguais = false; } } } if (SomasIguais==false) printf ("não existem somas iguais dentre os numeros dos jogadores. \n\n"); //verifica o(s) jogador(es) com maior soma. for (i=0; i<NumeroDeJogadores; i++) { printf ("[Jogador %d somou %d]\n", i+1, jogador[i]); } printf ("\n[Maior Numero é %d]\n", SomaDosNumerosGeradosDeCadaJogador[0]); for (i=0; i<NumeroDeJogadores; i++) { if (jogador[i]==SomaDosNumerosGeradosDeCadaJogador[0] && SomasIguais==false) { printf ("\nMaior soma foi gerada pelo jogador %d, que é %d", i+1, SomaDosNumerosGeradosDeCadaJogador[0]); break; } if (jogador[i]==SomaDosNumerosGeradosDeCadaJogador[0] && SomasIguais==true) { printf ("\nAs maior soma é %d, e foi gerada pelos jogadores: ", SomaDosNumerosGeradosDeCadaJogador[0]); for (j=i; j<NumeroDeJogadores; j++) { if (jogador[j]==SomaDosNumerosGeradosDeCadaJogador[0]) { printf ("%d,", j); } } } } printf (".\n\n"); return 0; } Bons estudos! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 wagner9 Postado Abril 24, 2016 Autor Denunciar Share Postado Abril 24, 2016 11 horas atrás, Aristóteles disse: Código FINAL: #include <stdio.h> #include <stdlib.h> #include <time.h> #include <stdbool.h> int main() { bool SomasIguais; int NumeroDeJogadores; int AuxDo=0; do { if (AuxDo>0) { printf ("Numero de jogadores invalida!\n"); } printf ("Digite a quantidade de jogadores (2-8): "); scanf ("%d", &NumeroDeJogadores); printf ("\n"); AuxDo ++; }while (NumeroDeJogadores > 8 || NumeroDeJogadores < 2); srand (time(NULL)); int jogador [NumeroDeJogadores], backup=0, NumerosGerados [3], SomaDosNumerosGeradosDeCadaJogador [NumeroDeJogadores], i, j; for (i=0; i<NumeroDeJogadores; i++) { for (j=0; j<3; j++) { NumerosGerados[j] = (1 + rand () % 100); backup = backup + NumerosGerados[j]; } SomaDosNumerosGeradosDeCadaJogador [i] = backup; jogador[i] = SomaDosNumerosGeradosDeCadaJogador[i]; backup=0; } //Essa função checa o maior valor e o coloca no primeiro elemento do array. Se existirem valores iguais estarão um adiante do outro. for (i=0; i<NumeroDeJogadores; i++) { for (j=i+1; j<NumeroDeJogadores; j++) { if (SomaDosNumerosGeradosDeCadaJogador[i] < SomaDosNumerosGeradosDeCadaJogador [j]) { backup = SomaDosNumerosGeradosDeCadaJogador[i]; SomaDosNumerosGeradosDeCadaJogador [i] = SomaDosNumerosGeradosDeCadaJogador [j]; SomaDosNumerosGeradosDeCadaJogador [j] = backup; } } } //verifica se há valores iguais. for (i=0; i<NumeroDeJogadores; i++) { for (j=i+1; j<NumeroDeJogadores; j++) { if (SomaDosNumerosGeradosDeCadaJogador[i] == SomaDosNumerosGeradosDeCadaJogador [j]) { SomasIguais = true; printf ("Existem valores iguais dentre os jogadores: \n\n"); break; } else { SomasIguais = false; } } } if (SomasIguais==false) printf ("não existem somas iguais dentre os numeros dos jogadores. \n\n"); //verifica o(s) jogador(es) com maior soma. for (i=0; i<NumeroDeJogadores; i++) { printf ("[Jogador %d somou %d]\n", i+1, jogador[i]); } printf ("\n[Maior Numero é %d]\n", SomaDosNumerosGeradosDeCadaJogador[0]); for (i=0; i<NumeroDeJogadores; i++) { if (jogador[i]==SomaDosNumerosGeradosDeCadaJogador[0] && SomasIguais==false) { printf ("\nMaior soma foi gerada pelo jogador %d, que é %d", i+1, SomaDosNumerosGeradosDeCadaJogador[0]); break; } if (jogador[i]==SomaDosNumerosGeradosDeCadaJogador[0] && SomasIguais==true) { printf ("\nAs maior soma é %d, e foi gerada pelos jogadores: ", SomaDosNumerosGeradosDeCadaJogador[0]); for (j=i; j<NumeroDeJogadores; j++) { if (jogador[j]==SomaDosNumerosGeradosDeCadaJogador[0]) { printf ("%d,", j); } } } } printf (".\n\n"); return 0; } Bons estudos! Muitoo obrigado meu irmao!!!! Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
wagner9
Olá amigos estou precisando imprimir o maior numero dos números aleatórios gerados. Mas dá erro. Sou iniciante em programação, perdoe os erros.
#include <stdio.h>
#include <stdlib.h>
int main() {
int jogadores, numero1, numero2, numero3, soma = 0, i , opcao;
int lista[8];
int maior = lista[0];
printf("Informe a quantidade de jogadores (2 a 8):");
scanf("%d", &jogadores);
for(i=0; i<jogadores; i++){
printf("\nJogador: %d", i+1);
numero1 = rand() % 100; // gerando um número aleatório
//printf("1o num. aleatorio entre 0 e 100: %d\n", dado1);
numero2 = rand() % 100; // gerando outro número aleatório
//printf("2o num. aleatorio entre 0 e 100: %d\n", numero2);
numero3 = rand() % 100; // gerando outro número aleatório
//printf("2o num. aleatorio entre 0 e 100: %d\n", numero3);
soma = numero1+numero2+numero3;
printf("\nSoma: %d\n",soma);
}
for(i=1; i<8; i++){
if(maior < lista)
maior = lista; }
printf("Maior = %d\n", maior);
system("pause");
Editado por wagner9}
Link para o comentário
Compartilhar em outros sites
6 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.