本想输入两组不同一维数组,但通过调试后发现:两个一维数组都读了同一组数据
#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;
}
以此题为例
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;
}
第6行:scanf("%d\n",&n); 这里多了'\n' , 修改为:scanf("%d", &n);