-1

我是 C 新手。对于以下程序,问题是:无论我输入什么整数,输出都是 1。你能告诉我问题出在哪里吗?

#include <stdio.h>

int main(void)
{
    int n;
    n = scanf("%d", &n);
    printf("%d\n", n);
}
4

4 回答 4

2

因为您正在打印scanf(). scanf() 返回成功扫描的值的数量。

换行:

n = scanf("%d", &n);

至:

 scanf("%d", &n);

或者,如果您想验证输入是否成功,请使用不同的变量:

if (scanf("%d", &n)! = 1 ) {
   /* Input failure */
}
于 2013-03-17T13:26:57.413 回答
2

scanf返回读取的有效值的数量。在您的示例中,首先将读取的值n进一步替换scanf为始终1在当前实现中的返回值,只要您输入有效的整数作为输入。

于 2013-03-17T13:27:07.897 回答
1

scanf()返回成功读取的项目数。因此,如果将其分配给nn则将包含 1 (以防整数被读取而没有错误)。

总而言之:将您的代码更改为

scanf("%d", &n);

并阅读一本关于 C 的好书。

于 2013-03-17T13:28:35.493 回答
0

你的错误在

n = scanf("%d", &n);

把它改成

scanf("%d", &n);

那应该没问题

于 2013-03-17T13:37:41.317 回答