簡體   English   中英

有人可以解釋我這段代碼嗎? 它給出了我們輸入的數字的反面

[英]Can someone explain me this code? It gives the reverse of the number we enter

#include <iostream>

using namespace std;

int main()

{

    long long n,i;
    cout << "Please enter the number:- \n";
    cin >> n;
    while (n!=0) 
    {

        i=n%10;   // what is the use of % here? 
        cout << i;
        n=n/10;
    }
return (1);


}

我想了解這段代碼是如何工作的。 為什么它會做它所做的? 如果我們輸入 5123 它將給出 3215。如何?

C 系列語言的基礎知識,運算符 % 給出其左側參數的余數除以右側參數。 因此, n % 10n以十進制表示法的最后一位數字(例如,3 表示 5123。)

長話短說:

運算符/執行地板除法:只返回整數部分,沒有余數,

運算符%返回除法運算的余數

如果需要,下面是逐行解釋。

long long n,i;

定義了long long (64 位無符號整數)類型的變量ni

cout << "Please enter the number:- \n";

打印出一條提示消息,提示預期的輸入是什么。

cin >> n;

是一個等待標准輸入的命令,它保存在 int 變量n 請注意,無效值(非數字)稍后會導致錯誤。

while (n!=0)

開始一個循環,當/如果n變得等於零時,該循環將被終止。

i=n%10;   // what is the use of % here? 

此命令返回變量n的值除以10的余數。 此操作的結果保存到變量i 例如

5123 % 10 = 3
 512 % 10 = 2
  51 % 10 = 1
   5 % 10 = 5

下一個,

cout << i;

將變量i的值打印到 stdout 並將光標保持在同一行的下一列。 在循環中這樣做,它將在一行中打印出變量i每個新值,偽造一個反向整數。

最后,

n=n/10;

執行變量n的值除以10的“整除法”(沒有余數的除法 - 僅返回整數部分)運算。 結果被保存回變量n

5123 / 10 = 512
 512 / 10 = 51
  51 / 10 = 5
   5 / 10 = 0    // after this iteration the loop will terminate

暫無
暫無

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

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