não acho o erro

não acho o erro

por Daniel Vieira -
Número de respostas: 11
esse deve ser um pedaço do ep3, calcular a média ponderada de n provas (pr[N]) com n pesos (p[N]) de 1 aluno. mas não acho o erro!


#include <stdio.h>
#define N 500

float m_ponderada(int n, int p[], float pr[]){
      float media=0;
      int i;
      int p_t=0;
      for (i=0; i<n; i++){
          media = media + pr[i]*p[i];
          p_t = p_t + p[i];          
          }
      media = media/p_t;
      return media;
      }
      
main () {
     int n;
     int i;
     float pr[N];
     int p[N];
     scanf ("%d", n);
     for (i=0; i<n; i++)
         scanf ("%d", p[i]);
     for (i=0; i<n; i++)
         scanf ("%f", pr[i]);
     printf ("%5.2f", m_ponderada(n, p, pr));
     }


qdo eu mando rodar ele vai até antes de começar a ler os pr[i] e dá uma mensagem de erro daquelas de enviar relatório para a microsoft.
Em resposta à Daniel Vieira

Re: não acho o erro

por Camila Carroci Martins -
O erro não poderia estar nesse vetor declarado por p[], pr[] sem valor dentro da função?
Em resposta à Daniel Vieira

Re: não acho o erro

por Jorge Luiz de Lima Matias -

cara vc esqueceu do & (e comercial) nos seus scanf, por isso que ta dando esse erro... heauhueahuea é moh frustante ficar quebrando a cabeça por causa desses errinhos, tb passei meia-hora com um erro parecido pra descobri q errei na hora de escrever o scanf.

e camila quando vc coloca um vetor como parametro de uma função ele nao deve ter valor nenhum entre os [ ], acho que está certo da forma q ele escreveu.

flws

Em resposta à Jorge Luiz de Lima Matias

Re: não acho o erro

por Daniel Vieira -
o E comercial... q coisa besta, o Dev devia acusar erro de compilação com uma coisa dessas, não? enfim, ja consegui fazer o ep... esse foi dificil, tentei 5 vezes antes de acerta!
Em resposta à Daniel Vieira

Re: não acho o erro

por Felipe Faget -

mano... to com um problema aki q num tem lógica...

no final das impressões das notas.... tem que imprimir as médias da classe... até ai tudo bem, consegui fazer... mais o mew programa ta pondo um espaço onde naum deveria... a saida ta mais ou menos assim:

fulano de tal 5.0 3.0 2.0 3.3 1.0 1.0

media          5.0 3.0 2.0 3.3 1.0   1.0 

tp.. na hra de imprimir a média final o vetor põe um espaço a mais

como eu arrumo isso, alguém sabe??

Em resposta à Felipe Faget

Re: não acho o erro

por Gilberto Guerra -

vc pode testar se o problema é esse pedindo para imprimir na tela cada coluna do vetor, pra saber o q realmente está no vetor e se é esse o problema!!

algo do tipo

for(i=0; i=tamanhodovetor-1; i++)

      printf("%d\n", nomedovetor[i]);

Em resposta à Gilberto Guerra

Re: não acho o erro

por Felipe Faget -

o problema é exatamente isso.... a saida fica assim tanto no programa quanto no arquivo de saida...

como eu arrumo???

Em resposta à Felipe Faget

Re: não acho o erro

por Gilberto Guerra -

eu naum vi o teu código, nem teu arquivo de entrada

veifique com calma o teu fprintf e o teu arquivo de entrada, de onde ele pegou os dados - o erro pode estar no arq de entrada!!!

Em resposta à Gilberto Guerra

Re: não acho o erro

por Felipe Faget -

acho que não, o arquivo de entrada esta igual ao exemplo de entrada dado no enunciado, com todos os espaço contados, recontados e contados mais uma vez... a respeito de leitura e impressão de dados, estão assim:

fscanf (entrada, "%d ", &variavel)

fprintf (saida, "%4.1f ", variavel) tem um espaço depois do f que é justamente para que os valores não fiquem grudados.

o que me parece estranho é aquele espaço ter aparecido em apenas umas das posições do vetor....

Em resposta à Gilberto Guerra

Re: não acho o erro

por Bianca Bianchi -

Nossa...fiqui muito tempo tentando...e não achava...mas depois que eu vi aqui...o daniel tava fazendo o mesmo erro que eu...era só colocar e comercial nos scanfs!!

hehe

brigada