【发布时间】:2021-03-03 15:38:39
【问题描述】:
以下代码没有错误,但没有运行。 帮我找出错误。 可以做些什么来运行代码?
#include<stdio.h>
int main(){
int i, n;
int vect_A[n], vect_B[n];
int result = 0;
printf("Put down the size of vectors below\n");
scanf("%d", &n);
printf("Write vector A:\t");
scanf("%d", &vect_A[i-1]);
printf("Write vector B:\t");
scanf("%d", &vect_B[i-1]);
for ( i = 0; i < n; i++)
{
result += vect_A[i]*vect_B[i];
}
printf("The inner product of these two vectors is %d\n", result);
}
【问题讨论】:
-
"以下代码没有错误" -- 嗯。当你定义
int vect_A[n]时,n的值是多少?当您说scanf("%d", &vect_A[i-1])时,i的值是多少?每个向量扫描多少个值? -
开启所有编译器警告。 godbolt.org/z/zsvzjo
-
scanf("%d", &n)不能向后工作。 C 不是一种声明性语言。它根据语句流运行。