Justiceira Postado Outubro 12, 2010 Denunciar Share Postado Outubro 12, 2010 (editado) 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 100float 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 Outubro 12, 2010 por Justiceira Título alterado para algo que condiza com o problema Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Blitzen Postado Outubro 13, 2010 Denunciar Share Postado Outubro 13, 2010 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Justiceira
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?
Editado por JusticeiraTí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
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.