c - 点积两个数组

标签 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;

最佳答案

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);

关于c - 点积两个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15777285/

相关文章:

c - 使链表的节点成为最后一个节点的功能?

c - 如何在来自 AVS 的 http2 连接上接收超过 65535 字节的数据?

c - 写入文件并使用带循环的 if 语句

algorithm - 选择满足特定属性的随机数组元素

c++ - boost::managed_shared_memory 可以正确处理 vector 吗?

r - 将数字向量拆分为 R 中的连续 block

c - 这个 printf() 语句的输出是如何计算的?

c++ - 将具有排序行的二维数组合并为一个大的一维数组

javascript 使用 forEach 合并两个数组

c++ - vector 中的每个元素是否都有唯一的内存地址?