输入一串数字,反向输出其结果。

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

}

//对这个递归算法不是很理解

//大牛带带我 |^_^|

回答:

这个递归程序在开始时先打印了个位数 `printf("%d",n%10)
会打印传入数字n的个位数,然后n/10 ? output(n/10) : (n = 0);`相对复杂一些,在C语言中称为三目运算符,意思是n/10为真则执行冒号前的表达式,否则执行冒号后的表达式,在我看来冒号后的表达式是任何都不会影响程序执行结果,因为如果传入n为一位数字我再printf中已经将其打印出来了。
实际递归写成如下形式可能更好理解:

void output(int n)

{

//打印个位数字

printf("%d", n%10);

//如果还有多余位要打印(十位)

if(n/10 > 0)

{

output(n/10);

}

}

回答:

这方法就是:

除10,余数为最小位数字,打印余数,商为除最小位之外的组成的数字,然后递归操作商,一直到商为0时,则说明已全部反转完成;

回答:

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

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

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

回答:

#include<iostream>

using namespace;

int main()

{int a,b,c;

cin>>a>>b>>c;

cout<<c<<b<<a;

return 0;

}

回答:

c# 的 string有反转的方法Reverse
代码如下:
static void Main(string[] args)

    {

Console.Write("输入内容:");

string str = Console.ReadLine();

Console.WriteLine();

Console.Write("反转结果:");

var v = str.Reverse();

foreach (var item in v)

{

Console.Write(item);

}

Console.ReadKey();

}

图片描述

以上是 输入一串数字,反向输出其结果。 的全部内容, 来源链接: utcz.com/p/190831.html

回到顶部