鍍金池/ 問答/C  C++  C#/ 輸入一串數(shù)字,反向輸出其結(jié)果。

輸入一串數(shù)字,反向輸出其結(jié)果。

#include    <stdio.h>
void output(int n)
{
    printf("%d", n%10);
    n/10 ? output(n/10) : 0;
 
}
 
int main(int argc, char* argv[]) 
{ 
    int n;
    scanf("%d", &n);
    output(n);
    return 0; 
} 
//對這個遞歸算法不是很理解
//大牛帶帶我 |^_^|
回答
編輯回答
情已空

c# 的 string有反轉(zhuǎn)的方法Reverse
代碼如下:
static void Main(string[] args)

    {
        Console.Write("輸入內(nèi)容:");
        string str = Console.ReadLine();
        Console.WriteLine();
        Console.Write("反轉(zhuǎn)結(jié)果:");
        var v = str.Reverse();
        foreach (var item in v)
        {
            Console.Write(item);
        }
        Console.ReadKey();
    }

圖片描述

2018年7月4日 10:28
編輯回答
陌上花

要點
** main 里 &n 被引用了

** % 取模運算
1 % 10 = 1
1 % 10 = 2

然后自己自己再理解試試。

2018年1月18日 21:10
編輯回答
無標題

這個遞歸程序在開始時先打印了個位數(shù) `printf("%d",n%10)
會打印傳入數(shù)字n的個位數(shù),然后n/10 ? output(n/10) : (n = 0);`相對復(fù)雜一些,在C語言中稱為三目運算符,意思是n/10為真則執(zhí)行冒號前的表達式,否則執(zhí)行冒號后的表達式,在我看來冒號后的表達式是任何都不會影響程序執(zhí)行結(jié)果,因為如果傳入n為一位數(shù)字我再printf中已經(jīng)將其打印出來了。
實際遞歸寫成如下形式可能更好理解:

void output(int n)
{
    //打印個位數(shù)字
    printf("%d", n%10);
    //如果還有多余位要打?。ㄊ唬?    if(n/10 > 0)
    {
        output(n/10);
    }
}
2017年5月10日 07:01
編輯回答
任她鬧

這方法就是:

除10,余數(shù)為最小位數(shù)字,打印余數(shù),商為除最小位之外的組成的數(shù)字,然后遞歸操作商,一直到商為0時,則說明已全部反轉(zhuǎn)完成;
2018年5月27日 00:20
編輯回答
笨小蛋
#include<iostream>
using namespace;
int main()
{int a,b,c;
cin>>a>>b>>c;
cout<<c<<b<<a;
return 0;
}
2017年11月7日 01:41