Dot产品两个阵列

时间:2013-04-03 01:20:14

标签: c arrays vector

我试着写一个程序,在不同的printf输入上取两个数组,然后计算点积,到目前为止这是我得到的,我需要帮助

#include <stdio.h>
#include <stdio.h>
#define SIZE 8
float droprod(float x[], float y[], int size[]);

int main()
{
    int i ;
    int Vx[SIZE], Vy[SIZE] ;

    printf("Enter 1st vector (q to quit) ");
    for (i=0;i<SIZE;i++)
    { 
                scanf("%d", &Vx[i]);
    }

    printf("Enter 2nd vector (q to quit) ");
    for (i=0;i<SIZE;i++)
    {
                    scanf("%d", &Vy[i]);
    }

printf("vectors [%d] [[%d] ", Vx[SIZE], Vy[SIZE]); // to double check my input, and it is not giving me the right input.

return 0;

1 个答案:

答案 0 :(得分:2)

printf无法直接打印数组。您必须使用例如for循环手动打印每个元素:

printf("vectors [");
for(i = 0; i < SIZE; i++) {
    if(i != 0) {
        printf(", ");
    }
    printf("%d", Vx[i]);
}
printf("] [");
/* same for the other array */
printf("]");

你甚至可以将这个逻辑包装在一个函数中:

void print_vector(int vec[SIZE]) {
    printf("[");
    for(int i = 0; i < SIZE; i++) {
        if(i != 0) {
            printf(", ");
        }
        printf("%d", vec[i]);
    }
    printf("]");
}

然后你的代码看起来像这样:

printf("vectors ");
print_vector(Vx);
printf(" ");
print_vector(Vy);