Ir para conteúdo
Fórum Script Brasil
  • 0

Programa em C - Imprimir o Maior Número


wagner9

Pergunta

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

  • 0

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

Link para o comentário
Compartilhar em outros sites

  • 0
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.

Link para o comentário
Compartilhar em outros sites

  • 0
#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.

Link para o comentário
Compartilhar em outros sites

  • 0

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.

Link para o comentário
Compartilhar em outros sites

  • 0

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!

 

Link para o comentário
Compartilhar em outros sites

  • 0
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!!!!

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...