输入与C中的输出不匹配

时间:2014-07-22 04:55:45

标签: c

您好我有以下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.

5 个答案:

答案 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);

一定会有用。