Ir para o conteúdo
CSalgado

Média Vector

Mensagens Recomendadas

CSalgado

Desenvolvi este código com o objetivo de conseguir determinar o maior e o menor numero de um vector com 5 numero.

Depois quis determinar tambem a média a ai começaram os problemas.

Alguem me pode dizer o que está errado no meu código?

#include <stdio.h>
#include <stdlib.h>

int main()
{
     int v[5];
     int i,x,j,media;
     
     for(i=0; i<5; i++)
     {
     printf("escreva um numero", i+1);
     scanf("%d",&v[i]);
              media += v[i];
              } 
              media /= 5; 
              
      for (i=0; i<4;i++)
      {
          for(j=i+1; j<5;j++)
        {
          if (v[i]<v[j])
              {
              x=v[i];
              v[i]=v[j];
              v[j]=x;
              }
        }
      }
               
     
      printf("O valor maior e  %d\n", v[0]);
      printf("O valor menor e  %d\n", v[4]);
      printf("Media %d\n", media);
      
  system("Pause");
  return 0;    
}

Desde já obrigado pela atenção:

César Salgado

----

Edit (Baderous): GeSHi adicionado

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pmg

Nao inicializaste a variavel media.

No ideone.com (sem o system!) vi logo qual era o problema.

Podias ter dito que o problema era que o valor apresentado para a media era um valor que nao tinha nada a ver com coisa nenhuma e que mudava de cada vez que corrias o programa ;)


What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pmg

A variável media está inicializada

Com que valor?

Em que linha?


What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
CSalgado

Obrigado pela ajuda.

Já resolvi o problema.

Fica aqui o código correcto para se algum dia surgir a mesma duvida  alguém.

#include <stdio.h>
#include <stdlib.h>

int main()
{
     int v[5];
     int i,x,j;
     float media=0;
     
     for(i=0; i<5; i++)
     {
     printf("escreva um numero", i+1);
     scanf("%d",&v[i]);
              media += v[i];
              }
              media /= 5;
             
      for (i=0; i<4;i++)
      {
          for(j=i+1; j<5;j++)
        {
          if (v[i]<v[j])
              {
              x=v[i];
              v[i]=v[j];
              v[j]=x;
              }
        }
      }
               
     
      printf("O valor maior e  %d\n", v[0]);
      printf("O valor menor e  %d\n", v[4]);
      printf("Media %f\n", media);
     
  system("Pause");
  return 0;    
}

---

Edit (Baderous): GeSHi adicionado

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pmg

Sugestão: usa sempre double (e não float) para variáveis de virgula flutuante.

O double está para variáveis de virgula flutuante como o int está para varáveis inteiras :-)

eg: 3.14 é um double; 652 é um int


What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.