[英]Reversing an entered numbers in C language
I just want to ask on why is there a need to write sum = sum*10+digit
instead of just sum = 0+digit
? 我只想问一个问题,为什么需要写
sum = sum*10+digit
而不是sum = 0+digit
? since the result of sum*10
is just 0. This is a code in C language for reversing an entered number. 因为
sum*10
的结果仅为0。这是C语言的代码,用于反转输入的数字。 Thanks! 谢谢!
#include <stdio.h>
int main()
{
int number, x = 0, digit, temporary, div = 10, sum = 0;
printf("Enter numbers\n");
scanf("%d", &number);
temporary = number;
START:
digit = number%div;
sum = sum*10+digit;
number = number/div;
if(number>0)
goto START;
printf("Reversed Number = %d\n", temporary);
printf("Reversed Number = %d\n", sum);
return 0;
}
In a situation like this it is a very good thing to examine what is happening with simple printouts. 在这种情况下,检查简单打印输出正在发生的事情是一件非常好的事情。 If you insert
printf("sum: %d digit: %d number: %d\\n", sum, digit, number);
如果插入
printf("sum: %d digit: %d number: %d\\n", sum, digit, number);
before the if statement, it will become obvious what's going on. 在if语句之前,这将是显而易见的。
$ ./a.out
Enter numbers
2345
sum: 5 digit: 5 number: 234
sum: 54 digit: 4 number: 23
sum: 543 digit: 3 number: 2
sum: 5432 digit: 2 number: 0
Reversed Number = 2345
Reversed Number = 5432
Sidenote: There are "approved" ways of using goto. 旁注:有使用goto的“批准”方法。 This is not one of them.
这不是其中的一个。 You should switch
你应该切换
START:
...
if(number>0)
goto START;
to 至
do {
...
} while(number>0)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.