Ir ao conteúdo
  • Cadastre-se
Daniel Edvanio

C Media de Impares e Pares

Posts recomendados

Professor me passou uma atividade com os seguintes critérios:

o usuário deve me informar 20 números inteiro, dentro desses 20 numero haverão pares e impares, eu devo calcular a media dos numero PARES e IMPARES, e dentro da media desses dois, mostrar os que ficaram a cima da media de cada um. por exemplo 3+ 7+ 9+ 13+5 (todos são impares) / 5 = (media:) 7.4, os que ficaram a cima da media foram os números 13 e 9

a ideia é fazer isso para os dois.

eu anexei dois exemplo que fiz mas não consigo junta-los com um único código esse ta sendo meu problema...

 

Media20.rar ParIMPAR.rar

  • Triste 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pode partir disso:

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

double calcularMedia(int *vetor, int tamanho);

void imprimirAcimaMedia(int *vetor, int tamanho, double media);

void imprimirVetor(int *vetor, int tamanho);

void iniciarVetor(int *vetor, int tamanho);

int main() {
    return EXIT_SUCCESS;
}

double calcularMedia(int *vetor, int tamanho) {
    double media = 0.0;

    for (int i = 0; i < tamanho; ++i) {
        media += vetor[i];
    }

    return (tamanho != 0)
           ? media / tamanho
           : 0.0;
}

void imprimirAcimaMedia(int *vetor, int tamanho, double media) {
    printf("[ ");

    for (int i = 0; i < tamanho; ++i) {
        if (vetor[i] > media) {
            printf("%i", vetor[i]);

            if (i + 1 < tamanho) {
                printf(", ");
            }
        }
    }

    printf(" ] \n");
}

void imprimirVetor(int *vetor, int tamanho) {
    printf("[ ");

    for (int i = 0; i < tamanho; ++i) {
        printf("%i", vetor[i]);

        if (i + 1 < tamanho) {
            printf(", ");
        }
    }

    printf(" ] \n");
}

void iniciarVetor(int *vetor, int tamanho) {
    for (int i = 0; i < tamanho; ++i) {
        vetor[i] = 0;
    }
}

As funções estão funcionando perfeitamente. Cabe a você implementar a função main e fazer o programa trabalhar como um todo.

Compartilhar este post


Link para o post
Compartilhar em outros sites
10 horas atrás, Daniel Edvanio disse:

Professor me passou uma atividade com os seguintes critérios:

o usuário deve me informar 20 números inteiro, dentro desses 20 numero haverão pares e impares, eu devo calcular a media dos numero PARES e IMPARES, e dentro da media desses dois, mostrar os que ficaram a cima da media de cada um. por exemplo 3+ 7+ 9+ 13+5 (todos são impares) / 5 = (media:) 7.4, os que ficaram a cima da media foram os números 13 e 9

a ideia é fazer isso para os dois.

eu anexei dois exemplo que fiz mas não consigo junta-los com um único código esse ta sendo meu problema...

 

Media20.rar 353 B · 2 downloads ParIMPAR.rar 234 B · 2 downloads

 

Ajude as pessoas a ajudar você. Postar dois arquivos rar como anexo? Isso quer dizer que usuários do forum com tempo e interesse em ajudar vão ter que fazer dois downloads e abrir dois arquivos em programas separados para depois entender seu problema. 

E o formato rar? Para quem usa Windows, pode abrir arquivos no formato zip automaticamente, mas formatos como rar, tar, cpio, rpm precisa de algum programa. E aí teria que instalar um outro programa. 

Tem aí na tela o botão code para colocar o programa direto aqui. Veja o primeiro

#include <stdio.h>

int main(void) {
	int i[20]; 
	int ward, soma = 0;
	float media;
	int nro;
	  
	for( ward = 0 ; ward < 20 ; ward = ward + 1){
	   printf("Favor digitar o valor %d: ", (ward + 1));
	   scanf("%d", &i [ward], &nro);
	   soma = soma + i [ward];
	}
	
	
	media = soma / 20.0;
	printf("Media = %5.1f \n", media);
	
	for( ward = 0 ; ward < 5 ; ward = ward + 1){
	   if( i [ward] > media ){
	   	   printf("Valor acima da media: %d\n", i [ward]);
	   }
	}	
	return 0;
}

E o segundo
 

#include <stdlib.h>
#include <stdio.h>
int main (void) {

int num;

printf("digite um numero inteiro: ");
scanf("%d",&num);

if(num%2==0){	
  printf("Par");
  }
  else
    printf("Impar");
    
}

Porque esse 5 no for?

for( ward = 0 ; ward < 5 ; ward = ward + 1){

 

Qual a sua dificuldade? Você so precisa apenas no primeiro programa ter uma soma para os pares e outra para os ímpares e colocar o if do segundo programa lá no loop, para somar no lugar certo conforme sejam pares ou não.

 

E depois de calcular as duas médias você volta no vetor, usa o if de novo para comparar os pares e ímpares com a média correspondente. Nada mais. Como está o programa agora?

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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 publicações 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...

Aprenda_a_Ler_Resistores_e_Capacitores-capa-3d-newsletter.jpg

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!