调试一个简单的C程序

时间:2013-03-17 13:26:05

标签: c

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

#include <stdio.h>

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

4 个答案:

答案 0 :(得分:2)

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

更改行:

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

为:

 scanf("%d", &n);

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

if (scanf("%d", &n)! = 1 ) {
   /* Input failure */
}

答案 1 :(得分:2)

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

答案 2 :(得分:1)

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

总而言之:将代码更改为

scanf("%d", &n);

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

答案 3 :(得分:0)

您的错误在

  

n = scanf(“%d”,&amp; n);

将其更改为

  

scanf("%d", &n);

它应该没问题