• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

suzy

porque me da lixo??

6 mensagens neste tópico

//Complete o programa anterior de forma a que todos todos os elementos do vector cujo

//valor seja inferior à média, sejam colocados a zero.


main()
{
int vet[DIM],i,media=0,total=0,al=0,conta=0,soma=0;


   for(i=0;i<DIM;i++)
      {
      printf(" introduza o numero %d\n",al);
      scanf("%d",&vet[i]);// vai colocar os valores no vector
      al++;
      soma=soma+vet[i];//vai somar os valores
      conta=conta+1;// vai contar o numero de iteraçoes
      media=soma/conta;
      
        if(vet[i]<media)
           {
           vet[i]=0;
           
           }
      
       
      }
      
      printf(" os valores sao %d\n",vet[i]);

fflush(stdin);
getchar();
}

qd compilo da sempre um numero 220030303

acho que e lixo ,mas aonde está o erro no programa, acho que assim ta bem, :cheesygrin: corrigam se tiver algo de errado :):P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

2 problemas:

- Para saberes a media dos valores, 1º tens que ler todos os valores e depois é que podes dividir pelo número de elementos (quando sais do for);

- Estás a fazer printf(" os valores sao %d\n",vet[ i]); e assim vais ler a seguir à última posição do vector que escreveste.

Tens que fazer o seguinte:

- um ciclo para ler os valores e somá-los;

- achar a média, dividindo os valores somados anteriormente por DIM;

- outro ciclo para ver se os valores estão abaixo da média, alterar os que estiverem, e imprimir (por esta ordem).

Já agora, para quem tem mãos de código rápidas, não lhe dêem já o código, deixem-na tentar implementar o algoritmo 1º :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu por acaso fiz um programa com isso, onde inseria-mos x valores e depois com esses valores calculava a media, mas por agora não douo código, tem de puxar pela "massa cinzenta" como eu fiz ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

2 problemas:

- Para saberes a media dos valores, 1º tens que ler todos os valores e depois é que podes dividir pelo número de elementos (quando sais do for);

- Estás a fazer printf(" os valores sao %d\n",vet[ i]); e assim vais ler a seguir à última posição do vector que escreveste.

Tens que fazer o seguinte:

- um ciclo para ler os valores e somá-los;

- achar a média, dividindo os valores somados anteriormente por DIM;

- outro ciclo para ver se os valores estão abaixo da média, alterar os que estiverem, e imprimir (por esta ordem).

Já agora, para quem tem mãos de código rápidas, não lhe dêem já o código, deixem-na tentar implementar o algoritmo 1º :D

conta=conta+1;// vai contar o numero de iteraçoes

é obvio k o numero de iterações é DIM

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

  printf(" introduza o numero %d\n",al);

porque não usar o i , em vez do al ?

0

Partilhar esta mensagem


Link 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