Estou estudando ponteiros em linguagem C. Fiz um programa para calcular produto vetorial entre dois vetores. Está ocorrendo o seguinte: a) o programa manda digitar a dimensão dos vetores, por exemplo, n = 5, ou seja, vetores com 5 elementos; b) depois, manda colocar os elementos de cada vetor que, em princípio, deveriam ser 5 elementos; ocorre que no primeiro vetor aparecem 6 elementos, enquanto no segundo vetor 5 elementos. Não estou conseguindo saber onde está o erro; se puderem ajudar, agradeço.
#include <stdio.h>
#include <stdlib.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main(int argc, char *argv[]) {
int *a, *b, n, i, produtoEscalar;
x:
printf("DIGITE A DIMENSAO DOS VETORES: \n");
scanf("%d", &n);
a = malloc(n*sizeof(int));
b = malloc(n*sizeof(int));
printf("DIGITE OS ELEMENTOS DO PRIMEIRO VETOR: \n");
for(i=0;i<n;i++){
scanf("%d ", &a);
}
printf("DIGITE OS ELEMENTOS DO SEGUNDO VETOR: \n");
for(i=0;i<n;i++){
scanf("%d ", &b);
}
produtoEscalar=0;
for(i=0; i<n; i++){
produtoEscalar=produtoEscalar + (a*b);
}
printf("PRODUTO ESCALAR = %d\n", produtoEscalar);
system("pause");
goto x;
return 0;
}
Pergunta
Maurizio Marchetti
Bom dia colegas,
Estou estudando ponteiros em linguagem C. Fiz um programa para calcular produto vetorial entre dois vetores. Está ocorrendo o seguinte: a) o programa manda digitar a dimensão dos vetores, por exemplo, n = 5, ou seja, vetores com 5 elementos; b) depois, manda colocar os elementos de cada vetor que, em princípio, deveriam ser 5 elementos; ocorre que no primeiro vetor aparecem 6 elementos, enquanto no segundo vetor 5 elementos. Não estou conseguindo saber onde está o erro; se puderem ajudar, agradeço.
#include <stdio.h>
#include <stdlib.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main(int argc, char *argv[]) {
int *a, *b, n, i, produtoEscalar;
x:
printf("DIGITE A DIMENSAO DOS VETORES: \n");
scanf("%d", &n);
a = malloc(n*sizeof(int));
b = malloc(n*sizeof(int));
printf("DIGITE OS ELEMENTOS DO PRIMEIRO VETOR: \n");
for(i=0;i<n;i++){
scanf("%d ", &a);
}
printf("DIGITE OS ELEMENTOS DO SEGUNDO VETOR: \n");
for(i=0;i<n;i++){
scanf("%d ", &b);
}
produtoEscalar=0;
for(i=0; i<n; i++){
produtoEscalar=produtoEscalar + (a*b);
}
printf("PRODUTO ESCALAR = %d\n", produtoEscalar);
system("pause");
goto x;
return 0;
}
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.