我试图写一个程序,在不同的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/