Erro ao fazer soma no do-while

7 respostas Resolvido
VyroZ79Z

Galera preciso cria um programa que leia um número do teclado até que encontre um número igual a zero. No final, mostre a soma dos números digitados e a média destes números.

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

int main(){

int num;

int soma;
do{
    printf("Digite um numero inteiro: ");
    scanf("%i", &num);
    if(num==0){
        soma += num;
    }
}while(num > 0);

printf("A somas dos numeros inteiros sao: %i", soma);

return 0;
}

Não estou conseguindo fazer a soma e não faço a minima ideia de como fazer a média dos números, alguém me ajuda por favor!

7 Respostas

Jelson1
Solucao aceita

No seu if você colocou: num ==0, mas no caso você deveria somar todo os número diferente de zero! E para calcular a média você deve ter uma variável para contar o total de numeros digitados. Assim:

int num;

  int soma=0;
  int count =0;

  do{
      printf("Digite um numero inteiro: ");
      scanf("%i", &num);
      if(num!=0){
          count+=1;
          soma += num;
      }
  }while(num > 0);

  //Média = somaTotal/quantidade
  float media = (float)soma/count;

  printf("A somas dos numeros inteiros sao: %i", soma);
  printf("Média: %f", media);

  return 0;
}
VyroZ79Z

Mano, muiiito obrigado sério mesmo, me salvou kkk, mais aqui, por algum motivo o média sempre da zero, tem como me responder o pq?

Jelson1

Foi mal! Faz assim:

float media = (float)soma/count;

O motivo dever ser esse:
/t/erro/400782/2?u=jelson1

VyroZ79Z

ainda sim está me retornando zero

//Média = somaTotal/quantidade

float media = (float)soma/count;

printf(“A somas dos numeros inteiros sao: %d \n”, soma);
printf(“Media: %f”, soma/count);

Jelson1

No lugar de soma/count coloque media (a variável media criada). Tinha digitado errado!

Jelson1

Deu certo?!

VyroZ79Z

agora deu certo manin
muiiiito obrigado serio mesmo

Criado 26 de março de 2020
Ultima resposta 26 de mar. de 2020
Respostas 7
Participantes 2