意外的乘法结果与scanf读取的整数值

Mah*_*oud 1 c scanf

我是C的初学者,我正在尝试编写一个矢量乘法代码.我读了一个数组和比例.然后我将此比例乘以数组中的每个元素.

for (i = 0 ; i < 5 ; i++) 
{
    scanf("%d", &numbers[i]);
}

puts("Please enter the scale:");
scanf("%d", s);

puts("The scaled vector is:");

for (j = 0 ; j < 5 ; j++) 
{
    int r = numbers[j] * s  ;
    printf("%d\n", r);
}
Run Code Online (Sandbox Code Playgroud)

但是,当我运行此代码时,我会收到以下输入的意外值:

1
2
3
4
5
Run Code Online (Sandbox Code Playgroud)

规模:

2
Run Code Online (Sandbox Code Playgroud)

输出:

6130616
12261232
18391848
24522464
30653080
Run Code Online (Sandbox Code Playgroud)

例如,当我用2 替换sin时numbers[j] * s,它将返回预期的输出.

per*_*eal 6

发送指向scanf的指针,以便您可以获取值:

puts ("Please enter the scale:");
scanf ("%d" , &s);
Run Code Online (Sandbox Code Playgroud)