This question already has answers here:
“printf” only printing variable addresses
                                
                                    (2个答案)
                                
                        
                                4个月前关闭。
            
                    
因此,我使用C已有几天,以前我没有遇到这个问题,但是现在我遇到了C扫描与用户输入的数字不同的数字的问题。我觉得它会打印数字的位置,而不是数字本身。我每次得到的数字是6422076,如果我打印了另一个从用户扫描的数字,它只会显示相同的数字-4、6422072,因此,我敢肯定,这与计算机存储数字的位置有关。

我尝试用其他几种方式打印它,并且总是得到相同的怪异数字。

void measures()
{
    int height;

printf("\nEnter your height:\n");
scanf("%d",&height);
while(height<140 || height>210){
    printf("Invalid input, try again: \n");
    scanf("%d",&height);
}

printf("height: %d\n",&height);
}


没有任何错误

最佳答案

这是您的问题:

printf("height: %d\n",&height);


您没有打印height的值。您正在打印其地址。删除运算符的地址:

printf("height: %d\n",height);

关于c - 为什么scanf扫描的号码不同于我输入的号码? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58355575/

10-11 21:55