Pessoal ! Tudo bem ?
Alguem pode me ajudar a resolver isso ! simplesmente o programa nao ta dando o resultado da media !
( 2 ) Media ponderada < -- escolha essa opção
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
/* Esta função calcula a média simples entre dois valores
* x1, x2
*/
float mediaSimples(float x1, float x2) {
return (x1+x2)/2;
}
/* Esta função calcula a média ponderada entre dois valores
* x1, x2, pesos p1, p2 respectivamente
*/
float mediaPonderada(float x1, float x2, float p1, float p2) {
return (x1*p1 + x2*p2)/(p1+p2);
}
/* Esta função calcula a média simples entre n valores x[i]
* Onde 0 < i < n
*/
float mediaSimplesVetor(int n, float x[]) {
int i;
float soma=0.0;
for(i=0; i<n; i++) soma=soma+x[i]; // calcule somatorio de Xi
return soma/n; // retorne a media
}
/* Esta função calcula a média pnderada entre n valores x[i]
* e pesos p[i], onde 0 < i < n
*/
float mediaPonderadaVetor(int n, float x[], float p[]) {
int i;
float media;
float somaX=0.0;
float somaP=0.0;
for(i=0; i<n; i++) // somatorio para 0<i<n-1
{
somaX=somaX+(x[i]*p[i]); // somatorio de Xi.Pi
somaP=somaP+p[i]; // somatorio de Pi
};
media = somaX/somaP; // calcule a media
return media; // retorne a media
}
/* Esta função mostra as notas no vetor x[i]
* onde 0 < i < n
*/
void mostraNotas(int n, float x[]){
int i;
printf("\n");
printf("As %d Notas Digitadas:\n",n);
printf("\n");
for(i=0; i<n; i++ )
printf(" Nota %d = %5.1f\n",i+1,x[i]);
}
/* INICIO */
int main(int argc, char *argv[])
{
setlocale(LC_ALL, "Portuguese");
int num ;
int rep;
float numero_max;
float *provas;
float media;
int i;
int n;
int maior=0, menor=0;
do
{
printf( " Digite: \n "
"(1) Media Normal \n "
"(2) Media Ponderada \n");
printf("\n");
scanf("%i", &num);
printf("\n");
//Media Simples - Vetor
if (num == 1 ) {
printf("Quantas Provas ? ");
scanf("%i",&n);
printf("\n");
provas = (float*) malloc(n*sizeof(float));
for (i = 0;i < n;++i) {
printf(" Nota %i: ",i + 1);
scanf("%f",&provas[i]);
if(i==0){maior=provas[i];menor=provas[i];}
if(provas[i]>maior){
maior=provas[i];
}
else{
if(provas[i]<menor){
menor=provas[i];
}
}
}
mostraNotas(n,provas);
printf("\n");
media = mediaSimplesVetor(n, provas);
printf("A Media é: %5.2f\n",media);
printf("\n");
printf("\n Maior Nota %d: \n", maior);
printf("\n Menor Nota %d: \n\n", menor);
}
else {
//Media Ponderada - Vetor
float provas[i];
int n, media;
printf("Quantas Provas ? ");
scanf("%i",&n);
printf("\n");
for( i=0; i<n; i++){
printf(" Nota %i: ",i +1);
scanf("%f", & provas);
}
for( i=0; i<n; i++){
printf("Peso %d: ",i + 1);
scanf("%f", & provas);
}
}
printf("\n");
media = mediaPonderadaVetor (n, provas, provas);
printf("A Media é: %5.2f\n", media);
printf("\n");
printf( "Digite (1) para continuar ou (2) para sair \n");
scanf("%d", &rep);
printf("\n");
}while (rep==1);
system("PAUSE");
return 0;
};