Jump to content

Resultado da média não é calculado!


Adauto

Recommended Posts

Segue abaixo a resolução de um exercício que estou tentando fazer, porem não consigo fazer com que o calculo da media saia correto. Abixo segue o script e em anexo o erro.

Caso alguém possa me ajudar. Desde já obrigado

#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
 
void main() {
 
    //Para usar acentos
    setlocale(LC_ALL,"");
 
    //Crie um algoritmo que leia um tamanho um vetor e preencha cada posição com um valor
    //depois calcule a média dos valores acessando o vetor.
    int tamanho;
    printf("Qual será o tamanho do vetor?");
    scanf("%d", &tamanho);
 
    float vetor[tamanho], soma;
 
    int i;
    for(i = 0; i < tamanho; i++){
        printf("Digite um valor:");
        scanf("%f", &vetor);
        soma = soma + vetor;
    }
    for(i = 0; i < tamanho; i++){
        printf("\nvetor[%d] = %.2f",i, vetor);
    }
 
    printf("\nA média dos valores é: %.2f", soma/tamanho);
 
}

erro.jpg

Link to comment
Share on other sites

1 hora atrás, Adauto disse:

Caso alguém possa me ajudar. Desde já obrigado

Existem vários problemas:

  1. Uso de int ao invés de unsigned int como índice do array;
  2. Array definido na pilha, sem checar o tamanho informado;
  3. Uso desnecessário (e errado) de locale;
  4. soma não é inicializado em lugar nenhum;
  5. Uso errado das referências aos elementos do array vetor;
  6. Não é verificado sequer se os valores conseguiram ser lidos.
Link to comment
Share on other sites

6 horas atrás, fredericopissarra disse:

Existem vários problemas:

  1. Uso de int ao invés de unsigned int como índice do array;
  2. Array definido na pilha, sem checar o tamanho informado;
  3. Uso desnecessário (e errado) de locale;
  4. soma não é inicializado em lugar nenhum;
  5. Uso errado das referências aos elementos do array vetor;
  6. Não é verificado sequer se os valores conseguiram ser lidos.

Amigo muito obrigado, a pela ajuda. Não usei unsigned int por realmente não conhecer, comecei a ver programação agora na faculdade. Quanto ao uso errado do locale sempre o usei assim e ele cumpriu a função que é o de acentuar as palavras e nesse código esta ok, sobre as observações  5 e 6 acredito que o senhor não tenha rodado o código pois essa verificação estava ocorrendo sim, o problema era só o retorno da média mesmo que foi solucionado com a sua sugestão do item 4, depois que inicializei a variável soma o calculo aconteceu. Muito obrigado pela ajuda.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...