我试着写一个程序,在不同的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;
答案 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);