簡體   English   中英

反轉輸入的C語言數字

[英]Reversing an entered numbers in C language

我只想問一個問題,為什么需要寫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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM