我是 C 新手。对于以下程序,问题是:无论我输入什么整数,输出都是 1。你能告诉我问题出在哪里吗?
#include <stdio.h>
int main(void)
{
int n;
n = scanf("%d", &n);
printf("%d\n", n);
}
我是 C 新手。对于以下程序,问题是:无论我输入什么整数,输出都是 1。你能告诉我问题出在哪里吗?
#include <stdio.h>
int main(void)
{
int n;
n = scanf("%d", &n);
printf("%d\n", n);
}
因为您正在打印scanf()
. scanf() 返回成功扫描的值的数量。
换行:
n = scanf("%d", &n);
至:
scanf("%d", &n);
或者,如果您想验证输入是否成功,请使用不同的变量:
if (scanf("%d", &n)! = 1 ) {
/* Input failure */
}
scanf
返回读取的有效值的数量。在您的示例中,首先将读取的值n
进一步替换scanf
为始终1
在当前实现中的返回值,只要您输入有效的整数作为输入。
scanf()
返回成功读取的项目数。因此,如果将其分配给n
,n
则将包含 1 (以防整数被读取而没有错误)。
总而言之:将您的代码更改为
scanf("%d", &n);
并阅读一本关于 C 的好书。
你的错误在
n = scanf("%d", &n);
把它改成
scanf("%d", &n);
那应该没问题