您好我有以下c函数:
int method2 (){
int userInput;
printf("Please enter your age: ");
scanf("%d", &userInput);
fpurge(stdin);
printf("You are %d years old. \n", &userInput);
int retval = 0;
return retval;
}
该函数接受年龄并在强句中返回相同的值。
因此,当我将其作为年龄类型12运行时。我得到了
You are 1606416204 years old.
答案 0 :(得分:2)
您正在打印变量userInput
的地址而不是其值,请使用printf
,如下所示
printf("You are %d years old. \n", userInput);
这将打印变量userInput
中的值。
答案 1 :(得分:1)
printf("You are %d years old. \n", &userInput);
^
|..//remove &
您在此打印地址&userInput'.
应该是userInput
。
答案 2 :(得分:1)
您将printf
的使用与scanf
改变:
printf("You are %d years old. \n", &userInput);
到:
printf("You are %d years old. \n", userInput);
答案 3 :(得分:1)
为什么在printf的userInput中包含&
? &
评估地址。我们需要userInput的值,因此请将其更改为:
printf("You are %d years old. \n", userInput);
让我知道会发生什么。
答案 4 :(得分:1)
您正在打印地址而不是值。将代码更改为此 -
printf("You are %d years old. \n", userInput);
一定会有用。