gpt4 book ai didi

c - C语言反转输入的数字

转载 作者:太空宇宙 更新时间:2023-11-04 06:49:38 24 4
gpt4 key购买 nike

我只想问为什么需要写sum = sum*10+digit 而不是sum = 0+digit?因为sum*10的结果就是0。这是一段C语言的代码,用于反转输入的数字。谢谢!

#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;
}

最佳答案

在这种情况下,检查简单打印输出的情况是一件非常好的事情。如果你插入 printf("sum: %d digit: %d number: %d\n", sum, digit, number); 在 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

旁注:有“批准的”使用 goto 的方式。这不是其中的一个。你应该切换

START:
...
if(number>0)
goto START;

do {
...
} while(number>0)

关于c - C语言反转输入的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53291640/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com