【发布时间】:2016-04-08 01:52:03
【问题描述】:
我正在编写一个函数,该函数将用户输入最大为 1000,然后将输入的每个数字相加。因此,如果用户输入 12,则函数输出 3。
当用户输入 1000 或以上时,该函数将打印“那个数字太高”。我可以得到打印语句的函数,但它也输出14...我不明白为什么?
我知道我的代码中可能还有其他错误,但现在这就是要我死的错误。任何可以提供帮助的东西都会很棒。
这是我的代码。
#include <stdio.h>
int SummItAll(int value);
int main ()
{
int userNumber=0, result;
printf("Enter a positive number \n ");
scanf("%d", &userNumber);
result = SummItAll(userNumber);
printf("%d\n", result);
return 0;
}
int SummItAll(int value)
{
int a=value, b, c, d, f, g;
if(a < 100)
{
b = a/10;
c = a%10;
return b+c;
}
else if(a >= 100 && a < 1000)
{
b = a/100;
c = a%100;
d = c/10;
f = c%10;
return b+d+f;
}
else
return printf("That number is to high!\n");
}
【问题讨论】:
-
我怀疑这不是实际代码。
printf()s 返回值是它输出的字符数(除非发生错误),并且您正在打印main()中的函数返回值。我猜你的 ACTUAL 代码正在打印一个长度为 14 的不同字符串。 -
你是对的,我在发布之前更改了最后的打印声明。它曾经是“Thats to high”,长度为 14 个字符。我希望 puts 可以代替 printf() 并且返回 10...感谢您的快速响应。
标签: c function if-statement