Ir para conteúdo
Fórum Script Brasil
  • 0

Chamar método


Justiceira

Pergunta

Oii pessoal estou com problema para executar este programinha,alguém poderia me dar uma força??

Bom não consigo pegar os resultados e jogar para o procedimento entrar dados o que estou a errar?


#define MAX 100

float x[MAX], y[MAX];
int n;

void entra_dados();
void RR();
float calcula_soma(float u[MAX], float v[MAX]);

void entra_dados(){
int i;

printf("Informe o Numero de Pares: ");
scanf("%d", &n);
for(i = 1; i <= n; i++){
scanf("%f %f", &x[i], &y[i]);
printf("X = %.1f Y = %.1f\n", x[i], y[i]);
}
RR();
}

void RR(){
float somax, somax2, somaxy, somay, aux[MAX];
float alfa1, alfa2, num1, den1, soma;
int i;
for(i = 1; i <= n; i++){
aux[i] = 1;
somax = calcula_soma(x, aux);//
printf("Somax %d - %1.f\n", i,soma);//coloquei esta linha so para ver o que acontece com os results
somay = calcula_soma(y, aux);
somax2 = calcula_soma(x, x);
somaxy = calcula_soma(x, y);
num1 = somaxy - (somax * somay)/n;
den1 = somax2 - (somax * somax)/n;
alfa1 = num1/den1;
alfa2 = (somay - alfa1 * somax)/n;
}
printf("Phi(x) = ", alfa1, "x + (", alfa2, ")");
}

float calcula_soma(float u[MAX],float v[MAX]){

int i;
float soma;

soma = 0;

for(i = 1; i <= n; i++){
soma = (soma + u[i] * v[i]);
//printf("Soma %1.f\n", soma);//Esta linha foi colocada para verificar também.
}
return(soma);
}

main(){
entra_dados();
}
[/codebox]

Editado por Justiceira
Título alterado para algo que condiza com o problema
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Tem alguns erros, mas tente resolver esses dois que vou te passar e veja se consegue resolver os demais:

1) Quando você declara um vetor, int v[3] por exemplo, as posições de seu vetor são v[0], v[1], e v[2]. Vamos supor que sejam 3 pares os dados inseridos em seu problema. Dê uma olhada nos seus laços for, eles começam com 1 e vão até 3 (

for( i=1; i<=n; i++)
), agora vejamos quais posições do vetor ele vai acessar: v[1], v[2] e v[3]!, Opa, v[3] não existe! As posições, como já lhe falei, são v[0], v[1] e v[2]. Faça assim com o laço
for( i=0; i<n; i++ )
{
     comandos;
}

2) Na função RR você cria um vetor aux[MAX] e não inicializa suas posições, depois o passa como parâmetro para a função calcula_soma() que tenta acessar todas as posições, mas ao fazer isso a função vai pegar lixo que está na memória e o resultado disso é imprevisível. Ah, nessas funções também tem o problema do for que te mostrei no item 1.

Melhora o código e depois posta aih pra ver como ficou.

[]'s

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...