关于期望输入两个不同的数组,但两个数组读取同一组数据的问题

问题遇到的现象和发生背景

本想输入两组不同一维数组,但通过调试后发现:两个一维数组都读了同一组数据

问题相关代码,请勿粘贴截图
#include <stdio.h>
#include <stdlib.h>
int main()
{
    int n,a[n],b[n],i,s=0;
    scanf("%d\n",&n);
    for(i=0;i<n;i++)
    {
        scanf("%d",&a[i]);
    }
    for(i=0;i<n;i++)
    {
        scanf("%d",&b[i]);
    }
    for(i=0;i<n;i++)
    {
        s=s+a[i]*b[i];
    }
    printf("%d",s);
    return 0;
}

运行结果及报错内容

img

我想要达到的结果

以此题为例
32

开始没看仔细,修改如下:


#include <stdio.h>
#include <stdlib.h>
int main()
{
    int n,a[10],b[10],i,s=0; //如果要计算的数组长度小于10,可以这样定义,具体长度可以自行调节,如果需要动态长度大小,可以使用malloc
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        scanf("%d",&a[i]);
    }
    for(i=0;i<n;i++)
    {
        scanf("%d",&b[i]);
    }
    for(i=0;i<n;i++)
    {
        s=s+a[i]*b[i];
    }
    printf("%d",s);
    return 0;
}

img

第6行:scanf("%d\n",&n); 这里多了'\n' , 修改为:scanf("%d", &n);