c - 简单的 C 程序在变量应该 scanf 后一致地将变量打印为 6356748

标签 c printf scanf

我正在编写一个程序,我想提示用户输入一个数值,然后立即打印该值。问题是,无论我输入什么数字,变量总是打印为 6356748。

这是代码:

#include <stdio.h>

int main(){
    int days;
    printf("How many days will you be observing your crew?\n");
    scanf("%d",&days);
    printf("%d\n",&days);
    return 0;
}

对于任何输入(甚至字母),返回都是相同的;它只是打印 f,接受用户输入,然后返回 6356748。

我查看了有关此类问题的其他类似帖子,但没有运气。 我还尝试在定义变量时对其进行初始化,并在主函数之外定义该变量。我还尝试在扫描变量并打印新值后向变量添加 1,但这只是返回相同的值,未更改:6356748。 我认为这是我的代码,因为我在在线 IDE 中尝试了这段代码,但我不知道它会怎样,因为语法对我来说似乎很好。

我想知道如何使 scanf 实际上将输入分配给变量并使程序停止打印相同的大值。 如果有任何帮助,我正在使用 Codeblocks。 提前致谢

最佳答案

您正在打印变量的地址... 修复方法如下:

printf("%d\n", days);

关于c - 简单的 C 程序在变量应该 scanf 后一致地将变量打印为 6356748,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54608702/

相关文章:

c - 如何在C中打印未指定大小的数组

c - 扫描和扫描文件中的数据时出现问题

c - scanf 裁剪数字的最后一个字节

c++ - 检查 scanf 格式化而不进行转换

C - 移除并替换打印的项目

c++ - 在macOS Catalina上编译Intel MKL CBLAS示例文件的问题

c - 国际对/秒。长C

c - printf 的奇怪行为

c - 在C中有效地初始化结构内部的指针

C- printf 十六进制值给出意外输出