Ir ao conteúdo
  • Cadastre-se
rastryth

C++ Programa que calcula media ponderada com vetor - ERROR

Recommended Posts

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;
  
};

 

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

×