Ir ao conteúdo
  • Cadastre-se

Calcular a média dos números pares.


bc2010

Posts recomendados

Bom, a questão pede para fazer um algoritmo que receba N números, calcular e mostrar a média dos números pares e o maior número par.

 

Eu até conseguiria calcular a média dos números se não fosse somente dos pares e se fosse de uma determinada quantidade, por exemplo, 3 números... 2 números... que daí era só somar os números digitados e dividir por 3... 2... Mas como sou iniciante nos Laços de Repetição, não estou conseguindo fazer a média somente dos números pares e encontrar o maior par. Tentei fazer de uma maneira aqui, mas acho que estou equivocado, se puderem me ajudar, ficarei grato.

 

OBS: Estou utilizando o laço "for", como está contido no Code abaixo.

 

Code:

int main(int argc, char** argv) {		setlocale(LC_ALL, "Portuguese");		int num1, n, par, mediapar;		for (n = 0; n <= num1; n++)	{		printf ("\nDigite algum número: ");		scanf ("%i", &num1);				if (n % 2 == 0)		{			mediapar = n/2;			printf ("\n\nA média dos números pares é: %i!\n", mediapar);				}	}		return 0;}
Link para o comentário
Compartilhar em outros sites

No teu programa você tá fazendo um negócio bem perigoso, que é a comparação com uma variável que não foi inicializada.

for (n = 0; n <= num1; n++) { ... }

 

O programa não sabe ainda o valor de 'num1', mas você já tá comparando ele no for.

 

Além disso você tá comparando os números de uma sequencia, de 0 até NUM1, mas a questão não diz que os números estão em sequencia. Pode ser que o usuário queira a média de "1, 3, 2, 7, 4, etc".

 

Você precisa criar uma regra pro teu programa definir o valor de N, depois capturar esses valores um por um.

 

Ou você pergunta isso diretamente pro usuário o valor de N, ou você usa algum mecanismo de leitura com algum critério de parada.

Por exemplo, se você quiser perguntar pro usuário:

int n;int valores[100];printf ("Digite o valor de N, entre 1 e 100: ");scanf ("%d", &n);

 

Agora que você tem um N, você pode fazer as leituras de 0 até N:

for (x=0; x < n; x++)    scanf ("%d", &valores[x]);

 

Ou, como eu disse antes, você pode usar algum mecanismo de leitura com critério de parada.

Por exemplo, lendo os valores até o usuário digitar zero:

int n = 0;int x = 0;printf ("Digite os valores blablabla, zero encerra");do {    scanf ("%d", &n);    valores[x++] = n;} while (n != 0);

 

Depois que você tiver preenchido o vetor valores, e tiver um valor N que diz quantos valores você leu, é só fazer um FOR simples e calcular a média.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

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...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!