这是因为您的 scanf 语句。通常,scanf 语句具有这种格式:
scanf("%d %d",&x,&y); //without the commas inside the ""'s
但是您已经制作了这种格式:
scanf("%d,%d",&x,&y); //with the commas inside the ""'s
这意味着您需要在两个输入之间使用逗号分隔符。
看下面的试验
TRIAL1:(注:输入为2345)
Please input 2 numbers:
2345
Now the value for x is 2345, and value for y is 134513867.
TRIAL2:(注:输入为 23,45)
Please input 2 numbers:
23,45
Now the value for x is 23, and the value for y is 45.
TRIAL3:(注:输入为23+45)
Please input 2 numbers:
23+45
Now the value for x is 23, and the value for y is 134513867.
因此,根据试验,scanf("%d,%d",&x,&y); 要求输入有逗号分隔符。第一次和第三次试验的输出发生了什么,y 变量确实包含垃圾,因为这些 y 值保持不变/未初始化。但似乎 x 变量得到了正确的值,因为你的 scanf 上的第一个 %d 。