Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Wércules Lima Ribeiro

Ler 10 numeros e informar os impares e media dos pares

Recommended Posts

A dúvida é essa!

Um programa que receba 10 numeros inteiros e mostre como resultado:

qtos são impares;

a média dos pares;

o menor numero impar;

e a média dos impares;

 

Eu preciso usar o laço FOR e só consegui mostrar apenas qtos impares foram digitados...

 

 

Como eu faço para terminar esse código????

 

#include <stdio.h>
#include <conio.h>

int main()
{
int numero, n, media, contador=0,soma,par;
for (n=0;n<=10;n++)
{
printf("\n Digite um numero: ");
scanf("%d", &numero);
if(numero % 2 !=0)
contador = contador + 1;
else
par = contador + 1;
soma += numero;
}
media = soma / par;
printf("\nForam digitados %d numeros impares", contador);
printf("\nA media dos numeros pares = %d",media);
getch();
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

O exercício pede a média dos ímpares, mas vc está misturando tudo.

Conte separadamente cada um (pares e ímpares) e some separadamente (soma_par e soma_impar). Aí sim vc tem condições de

calcular a média que o exercício pede.

 

Cabe uma observação aqui: e se não forem fornecidos números ímpares? Como vc vai tratar esse caso? A média dará NaN ou erro -- divisão por zero -- e alguma coisa precisa indicar que vc não forneceu nenhum número ímpar -- no caso, os contadores separados (contador_impar = 0). Mesmo raciocínio vale para o caso dos pares.

 

P/ calcular o menor número ímpar inteiro (supondo que vc está trabalhando com inteiros positivos), eu criaria uma variável menor_impar. A atribuição funcionaria assim:

 

 

if (numero & 1) {
   if (!contador_impar)
       menor_impar = numero;
   else {
       if (numero < menor_impar)
           menor_impar = numero;
   }
   contador_impar++;

 

 

 

if (!contador_impar) {
  puts("Nenhum número ímpar informado. Sem informação da média");
} else {
  printf("Média dos ímpares: %.2f\n", soma_impares/ (float) contador_impares);
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ficou assim o programa que mostra a média dos ímpares: Confiram ae pra ver se está certo.

 

#include <stdio.h>
#include <conio.h>

int main()
{
int numero, cont;
float soma_impares, contador_impar=0;
for (cont=1;cont<=10;cont++)
{
printf("Digite um numero: ");
scanf("%d",&numero);
if (numero & 1)
{
contador_impar = cont;
soma_impares = soma_impares + numero;
}
}
printf("A media dos impares %.2f\n", soma_impares / (float) contador_impar);
getch();
}



E o outro que mostra o menor impar digitado ficou assim:

 

#include <stdio.h>
#include <conio.h>

int main()
{
int numero, n, contador_impar, menor_impar, media_impar;
for (n=0;n<=10;n++)
{
printf("\n Digite um numero: ");
scanf("%d", &numero);
if(numero & 1)
{
if(!contador_impar)
menor_impar = numero;
else {
if(numero < menor_impar)
menor_impar = numero;
}
contador_impar ++;
}
}
printf("\nO menor numero impar digitado foi: %d", menor_impar);

getch();
}

Compartilhar este post


Link para o post
Compartilhar em outros sites
Confiram ae pra ver se está certo.

 

É sério isso? Você nem compilou e executou o programa?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.