输入一串数字,反向输出其结果。
#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