Ir ao conteúdo
  • Cadastre-se
Entre para seguir isso  
btmvdr

[Resolvido] Ajuda com média aritmética

Recommended Posts

Ai eu comecei a fazer, só que no final não está dando certo, não sei o que posso mudar pra mostrar a média certa, e quantos valores que estão acima dessa média. Se alguém puder me ajudar eu agradeço muito!! :D

#include <stdio.h>
#include <stdlib.h>
main(){
int n, soma, media=0,cont=0,qtd_num=0;
printf("Entre com um numero. Digite 0 pra sair\n");
scanf("%d",&n);
while((n!=0)&&(cont<15)){
soma=soma+n;
qtd_num=qtd_num+1;
cont++;
printf("Entre com um numero. Digite 0 pra sair\n");
scanf("%d",&n);
media=soma/qtd_num;

}
printf("Media aritmetica = %d\nAlunos acima da media = %d\n", media, qtd_num );
system("pause");
return 0;}

Editado por btmvdr

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você estava calculando a media antes de somar todas as notas, segue abaixo as correções


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

int main(){
int cont=0,qtd_num=0;
//vetor n para armazenar os 15 numeros
float n[15], soma=0, media=0;//use float pois podem ser valores não inteiros
int j;//percorrer o vetor

while((n!=0)&&(cont<15)){

printf("Entre com o %d numero. Digite 0 pra sair\n",cont+1);
scanf("%f",&n[cont]);

soma=soma+n[cont];//soma todas as notas

//quantidade de alunos
qtd_num=qtd_num+1;//pode ser simplesmente ++

cont++;
}

//calcule a media so depois de somar topdas as notas por isso não estava funcionando
media=soma/qtd_num;

qtd_num=0;
//calcular a quantidade de alunos acima da media
for(j=0;j<15;j++){

if(n[j]>=media){
qtd_num++;//quantidade de alunos acima da media
}

}

printf("Media aritmetica = %.2f\nAlunos acima da media = %d\n", media, qtd_num );

printf("\n");

system("pause");
return 0;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites
Você estava calculando a media antes de somar todas as notas, segue abaixo as correções


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

int main(){
int cont=0,qtd_num=0;
//vetor n para armazenar os 15 numeros
float n[15], soma=0, media=0;//use float pois podem ser valores não inteiros
int j;//percorrer o vetor

while((n!=0)&&(cont<15)){

printf("Entre com o %d numero. Digite 0 pra sair\n",cont+1);
scanf("%f",&n[cont]);

soma=soma+n[cont];//soma todas as notas

//quantidade de alunos
qtd_num=qtd_num+1;//pode ser simplesmente ++

cont++;
}

//calcule a media so depois de somar topdas as notas por isso não estava funcionando
media=soma/qtd_num;

qtd_num=0;
//calcular a quantidade de alunos acima da media
for(j=0;j<15;j++){

if(n[j]>=media){
qtd_num++;//quantidade de alunos acima da media
}

}

printf("Media aritmetica = %.2f\nAlunos acima da media = %d\n", media, qtd_num );

printf("\n");

system("pause");
return 0;
}

Só tá dando um problema na parte do ''Digite 0 pra sair'', pois no caso, eu posso entrar no máximo com 15 valores, mas por exemplo se eu quiser entrar só com 7 números, depois eu apertaria ''0'' pra parar, e ele calcularia a média e diria quantos estão acima dessa média....Mas apertar o ''0'' não está fazendo isso, o que mudo pra isso funcionar? :confused:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caso o autor do tópico necessite, o mesmo será reaberto, para isso deverá entrar em contato com a moderação solicitando o desbloqueio.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Visitante
Este tópico está impedido de receber novos posts.
Entre para seguir isso  





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

×