Ir ao conteúdo

C Dificuldade para calcular média


Ir à solução Resolvido por devair1010,

Posts recomendados

Postado

Galera podem me dar uma ajuda?

Tenho um trabalho da Faculdade para fazer consegui desenvolver o codigo todo porém a media solicitada pelo professor não consigo desenvolver, apenas a media simples, segue abaixo a descrição do trabalho e meu codigo desenvolvido.

 

 

O programa desenvolvido deve conter as seguintes funcionalidades:

A primeira informação a disponibilizada é nome completo de todos os alunos que entegram o grupo;

O programa deverá solicitar a entrada de números inteiros positivos e diferentes de 0(zero);

A solicitação da entrada de números inteiros será finalizada apenas quando o usuário digitar o número 0(zero);

Caso o usuário digite um número negativo o programa deve enviar a seguinte mensagem: "Atenção!!! Você digitou um valor inválido."

Quando o usuário entrar com o valor 0(zero), o programa deverá apresentar o seguinte resultado:

Você digitou N números, sendo que:  (N indica a quantidade total de números digitados)

     Você digitou N números entre 1 e 9. (N indica a quantidade total de números digitados entre 1 e 9)

     Você digitou N números entre 10 e 99. (N indica a quantidade total de números digitados entre 10 e 99)

     Você digitou N números entre 100 e 999. (N indica a quantidade total de números digitados entre 100 e 999)

     Você digitou N números entre 1.000 e 10.000. (N indica a quantidade total de números digitados entre 1.000 e 10.000)

     Você digitou N números com outros valores. (N indica a quantidade total de números digitados acima de 10.000)

     

     O cálculo da media dos número digitados é => MEDIA".  (MEDIA corresponde a soma de todos os valores digitados dividido pela quantidade total de números digitados, e deverá ter no máximo 2 casas decimais)

 

Se o usuário não digitou nenhum número, o programa deverá enviar a seguinte mensagem: "Atenção !!!! Você não digitou nenhum número.




 

/********************************************************
Programa: 
Objetivo:
Autor: Luiz Eduardo E. de souza
Data: 
**********************************************************/

#include <stdio.h>

int main()
{
    int numero, qtd1=0, qtd2=0, qtd3=0, qtd4=0, qtd=0, media;
    
    printf("=============================\n");
    printf("Selicione as opcao abaixo \n");
    printf("=============================\n");
    
    printf("1-) Digite um numero inteiro \n");
    printf("2-) Digite 0 para sair \n");
    printf("=============================\n");
    
    scanf("%d", &numero);
    
    while (numero!=0)
    {
        
        if ((numero>0) && (numero<10))
        {
            qtd1=qtd1+1;
        }
            if ((numero>10) && (numero<99))
            {
                qtd3=qtd3+1;
            }
            
                 if ((numero>1000) && (numero<10000))
                 {
                     qtd4=qtd4+1;
                 }
                     
                     if (numero>10000)
                     {
                         qtd=qtd+1;
                     }
                     
                     if (numero<0)
                     {
                         printf("Atencao!!! voce digitou um valor invalido.");
                     }
                     
                     scanf("%d", &numero);
        
    }
    media = (qtd1+qtd2+qtd3+qtd4+qtd) / 2;
    printf("Media = %d\n",media);
    printf("============================================================\n");
    printf("Foram digitados %d valores no intervalo de 1 a 9", qtd1);
    printf("\n==========================================================\n");
    printf("Foram digitados %d valores no intervalo de 10 a 99", qtd2);
    printf("\n==========================================================\n");
    printf("Foram digitados %d valores no intervalo de 100 a 999", qtd3);
    printf("\n==========================================================\n");
    printf("Foram digitados %d valores no intervalo de 1000 a 10000", qtd4);
    printf("\n===========================================================\n");
    printf("Foram digitados %d valores no intervalo de numero > 10000", qtd);
    printf("\n===========================================================\n");
    
        return 0;


}

 

Postado

@eduheavy    você precisa colocar uma variável para somar o total de números entrados ,  para no final dividir e ter a média 

int num_total = 0;

e depois do scanf 

num_total += numero;

e ali depois do while 

num_total = / (qtd1+qtd2+qtd3+1td4);

e no seu código , esse qtd2 não recebeu nenhum valor  .

Postado
1 hora atrás, devair1010 disse:

@eduheavy    você precisa colocar uma variável para somar o total de números entrados ,  para no final dividir e ter a média 



int num_total = 0;

e depois do scanf 



num_total += numero;

e ali depois do while 



num_total = / (qtd1+qtd2+qtd3+1td4);

e no seu código , esse qtd2 não recebeu nenhum valor  .

 

/********************************************************
Programa: 
Objetivo:
Autor: Luiz Eduardo E. de souza
Data: 
**********************************************************/

#include <stdio.h>

int main() 
{

 

int numero, qtde1=0, qtde2=0,qtde3=0,qtde4=0,qtde=0, num_total=0, media;

printf("=============================\n");

printf("Selicione as opcao abaixo \n");

printf("=============================\n");

printf("1-) Digite um numero inteiro \n");

printf("2-) Digite 0 para sair \n");

printf("=============================\n");

scanf("%d", &numero);
num_total += numero;

 

while (numero!=0) {

 

             

           if ((numero>0) && (numero<10)) {

  qtde1=qtde1+1;

 }

     if ((numero>10) && (numero<99)) {

  qtde2=qtde2+1;

 }

     if ((numero>100) && (numero<999)) {

  qtde3=qtde3+1;

 }

     if ((numero>1000) && (numero<10000)) {

  qtde4=qtde4+1;

 }

     if (numero>10000) {

  qtde=qtde+1;

 }

     if (numero<0) {

  printf("Atencao!!! voce digitou um valor invalido.");

 }

     scanf("%d", &numero);

               

               

       

 

}
media = (qtde1+qtde2+qtde3+qtde4+qtde) / num_total;
printf("Media = %d\n",media);
printf("============================================================\n");

printf("Foram digitados %d valores no intervalo de 1 a 9", qtde1);

printf("\n==========================================================\n");

printf("Foram digitados %d valores no intervalo de 10 a 99", qtde2);

printf("\n==========================================================\n");

printf("Foram digitados %d valores no intervalo de 100 a 999", qtde3);

printf("\n==========================================================\n");

printf("Foram digitados %d valores no intervalo de 1000 a 10000", qtde4);

printf("\n===========================================================\n");

printf("Foram digitados %d valores no intervalo de numero > 10000", qtde);

printf("\n===========================================================\n");

 

return 0;

}

Fiz as alterações aqui aparece o resultado mas não tenho certeza de que a logica esta correta.

  • Solução
Postado

@eduheavy   ali ele está somando o valor total dos números apenas uma vez , e precisa ser todas as vezes que inserir um número , então do / while seria melhor , e seu código poderia ser assim  :

#define  _CRT_SECURE_NO_WARNINGS
#define cls system("cls");
/********************************************************
Programa:
Objetivo:
Autor: Luiz Eduardo E. de souza
Data:
**********************************************************/
#include <stdio.h>
#include <stdlib.h>
int main()
{
    int numero, qtde1 = 0, qtde2 = 0, 
        qtde3 = 0, qtde4 = 0, qtde = 0, 
        num_total = 0, media,cont=0;
    do
    {
        cls
        printf("=============================\n");
        printf("Selicione as opcao abaixo \n");
        printf("=============================\n");
        printf("1-) Digite um numero inteiro \n");
        printf("2-) Digite 0 para sair \n");
        printf("=============================\n");
        scanf("%d", &numero);
        num_total += numero;
        if (numero > 0 && numero < 10) 
        {
            qtde1++;                // = qtde1 + 1;
        }
        if (numero > 10 && numero < 99) 
        {
            qtde2++;               // = qtde2 + 1;
        }
        if (numero > 100 && numero < 999) 
        {
            qtde3++;                // = qtde3 + 1;
        }
        if (numero > 1000 && numero < 10000) 
        {
            qtde4++;                 // = qtde4 + 1;
        }
        if (numero > 10000) 
        {
            qtde++;                  // = qtde + 1;
        }
        if (numero < 0) 
        {
            printf("Atencao!!! voce digitou um valor invalido.");
        }
    }while (numero != 0);
    media = num_total / (qtde1 + qtde2 + qtde3 + qtde4 + qtde);
    printf("\nMedia =------ %d\n\n", media);
    printf("============================================================\n");
    printf("Foram digitados %d valores no intervalo de 1 a 9", qtde1);
    printf("\n==========================================================\n");
    printf("Foram digitados %d valores no intervalo de 10 a 99", qtde2);
    printf("\n==========================================================\n");
    printf("Foram digitados %d valores no intervalo de 100 a 999", qtde3);
    printf("\n==========================================================\n");
    printf("Foram digitados %d valores no intervalo de 1000 a 10000", qtde4);
    printf("\n===========================================================\n");
    printf("Foram digitados %d valores no intervalo de numero > 10000", qtde);
    printf("\n===========================================================\n");
    return 0;
}

 

  • Amei 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!