Ir ao conteúdo

Posts recomendados

Postado

Meu professor deu 3 exercícios. Na teoria é fácil de resolver mas ficaria muito longo e cansativo. Então tentei resolver com vetores e for mas não consegui. é o seguinte;

 

sabendo q dois alunos fizeram 2 provas cada, a primeira com peso 6 e a segunda com peso 4, calcule a média ponderada e ao final, calcule a média aritmética com base nos resultados da média ponderada 

Postado

@Leonardo0308 por enquanto apenas isso: ainda estou tentando desenvolver mas acho q tinha piorada

 

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


int main(){

int p1[2], p2[2], ma, mp, i;
for (i=0; i<2; i++){
    printf("digite as duas notas do aluno %d: \n", i+1);
    scanf("%d %d",&p1, &p2);
    mp=(((p1*6)+(p2*4))/(4+6));
}for(int i=0; i<2; i++){
printf("media ponderada dos alunos %d \n", mp);}
}
 

  • Membro VIP
Postado

Você precisa identificar de quem são as provas p1 e p2.

scanf("%d %d",&p1[i], &p2[i]);

Faça a mesma coisa com a média ponderada. Se você vai mostrar a média ponderada somente no final, ela também precisa ser vetor. Essa média aritmética é entre os 2 alunos ou entre as duas provas?

  • Membro VIP
Postado

Ahh sim. Então MP tem que ser vetor. Ao final você faz a média simples mp[0] e mp[1] ou use um laço for para armazenar os resultados. Mas faça uma coisa de cada vez. Tente achar as médias ponderadas primeiro.

  • Curtir 1
Postado

@Math.Pi @Math.Pi sim. Valeu pela ajuda

 

#include <stdio.h>

int main(){

int i=0, p1[2], p2[2], mp[2];
float ma, somamedia;
for(i=0; i<2; i++){
    printf("digite as duas notas do aluno %d: \n", i+1);
    scanf("%d %d",&p1, &p2);
    mp=(((p1*6)+(p2*4))/(4+6));
}for(int i=0; i<2; i++){
printf("media ponderada do aluno %d = %d \n", i+1, mp);}

for(i=0; i<2; i++){
    somamedia=somamedia+mp;
    ma=(somamedia)/2;
}printf("\nmedia total %2.2f", ma);
}

Postado

@James_Mulder  É de fato para uma escala que não admita valores quebrados; dá certo.

Para uma escala real; não.

 

Somente quem consegue ver  o código sabe que as informações (notas) só são do tipo inteiro.

 

Lembre-se que a divisão por inteiros tem resultado inteiro.

Suponha que eu tenha: {4, 6} então

(4*(6)+6*(4))/(6+4)

(24+24)/10

48/10

4 O resultado com arrendondamento para baixo. 

Certo !?

 

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

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

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!