c++编写一个递归函数,将一个字符串按其逆序输出。要求不要用指针和数组。在线等~~~~~急

大侠们。。。要求的是不用“数组”跟“指针”。。。!!!!请仔细看题目。。告诉你们了不让用数组和指针。。。我会数组跟指针!

第1个回答  推荐于2016-09-08
char str[] = "backward output";

void rec_print( char* str )
{
if (0 == str || 0 == str_len(str) ) return;
printf("%c",str[strlen(str)-1]);
str[strlen(str)-1]=0;
rec_print(str);
}

void rec_print_no_pointer( std:;string& str )
{
if (!str.size()) return;
std::cout << str.substr(str.size()-1,1);
str = str.substr(0,str.size()-1);
rec_print_no_pointer(str);
}本回答被提问者采纳
第2个回答  2011-04-05
#include<stdio.h>
#include<string.h>
void fun(char str[])
{
static int i=strlen(str);
i--;
if(i>=0)
{
printf("%c",str[i]);
fun(str);
}
else
printf("\n");
}
void main()
{
char str[100];
printf("input the string:\n");
scanf("%s",&str);
fun(str);
}

不知道符不符合你的要求
第3个回答  2011-04-05
#include<cstring>
#include<cmath>
using namespace std;
void AA(int n,char s[]){ //把整型n转换为字符串保存至s,注意此为反着保存的 即100保存进去为001;
int i=0;
while(n>0){
s[i++]=(char)(n%10)+'0';
n/=10;
}
s[i]='\0';
}
void BB(int n,char s[]){ //把整型n转换为字符串保存至s,注意此为正向保存的 即100保存进去为100;
int i=0;
i=(int)log10(n+0.0)+1;
s[i]='\0';
while(n>0){
s[--i]=(char)(n%10)+'0';
n/=10;
}
}
int main(){
int n;
char s[100];
cout<<"请输入整数:"<<endl;
while(cin>>n){
AA(n,s);
cout<<"反向保存:\n"<<s<<endl;
BB(n,s);
cout<<"正向保存:\n"<<s<<endl;
}

return 0;
}
第4个回答  2011-04-05
//定义递归函数 要求不用指针和数组输出字符串
void ReverseOrder(char* string)
{
char ch;
ch=string[0];
if(string[0]!=NULL)
{
ReverseOrder(&string[1]);
cout<<ch;//逆序输出字符串
}
}
第5个回答  推荐于2018-03-13
#include<stdio.h>
void reverse()
{char c;
scanf("%c",&c);
if(c!='\n')
reverse();
else return;
printf("%c",c);
}
int main()
{
reverse();
getch();
return 0;
}本回答被网友采纳

c++编写一个递归函数,将一个字符串按其逆序输出。要求不要用指针和...
rec_print_no_pointer(str);}

用C++设计一个程序,分别设计两个递归函数,输入一个整数后,一个能实现...
printf("\\n");print2(n);printf("\\n");return 1;} void print1(int num){ if(num < 0) { \/* 负数 *\/ printf("-");print1(-num);} else { if(num > 9) { \/* 打印 num 前面的数字 *\/ print1(num \/ 10);} printf("%d", num % 10); \/* 打印num的个位数 *\/ } }...

用c++ 输入一行整数,按位反序输出,要求用递归函数
这个是整数字符的反序输出,数组的有些具体的东西忘了,你参照着看看吧 给你个思路,你可以用数组s[n]储存输入的n个整数,然后把数组传给另一个函数,这个函数把数组的s[]里面的序号0-n重新倒序就得到新数组传给主函数就可以了 include <stdio.h> void convert(int n){ int i;putchar(n%10+...

关于C++的一道题,编写函数reverse(char *s),用递归算法使字符串倒序...
cout <<"输入字符串:";cin >> a;cout <<"逆序前为:"<< a <<endl;reverse(a);cout <<"逆序后为:"<< a <<endl;} 好像有错误,高手说一下了 解析:\/*错误:char b[]后面少了;还有,少了b数组的长度.还有,reverse是一库函数,得改一下名.还有,你的程序是不对.你main()函数中用到返...

c语言输入一个整数,用递归算法将整数倒序输出.
voidorder_print(intn){ if(n<10){ printf("%d",n);return;} order_print(n/10);printf("%5d",n%10);} void reverse_print(intn){ if(n<10){ printf("%-5d",n);return;} printf("%-5d",n%10);reverse_print(n/10);} int...

C++,试用递归函数将输入的6个字符按相反顺序排列输出
include<iostream>using namespace std;void print(const char* str){if (*str){print(str+1);cout<<*str;}}int main(){char str[10];cin>>str;print(str); return 0;}

列举一个简单且精辟的C++中函数递归的例子
h>using namespace System;int countFun(int n){ if(n==0)return 0;if(n>0)return 2*(countFun(n-1)+1);}int main(){ \/\/方法一 printf("%d\\n", countFun(10));\/\/方法二 int i,s=0;for(i=10;i>0;i--){ s=2*(s+1);printf("s=%d\\n",s);} return 0;} ...

编写一个递归函数,将整数的个位上的数字按相反的顺序输出。例如,输入...
include<iostream>unsigned int reverse(unsigned int n){ unsigned int pm=10;while (n \/ pm){pm *= 10;};pm \/= 10;if (pm == 1) return n;return (n % 10)*pm + reverse(n \/ 10);}int main(int argc, char* argv[]){using namespace std;cout << reverse(1234) << endl...

c\/ c++冒泡法排序后插入一个数据,如何反序输出
c\/ c++冒泡法排序后插入一个数据,反序输出:在C++语言中可以使用递归函数来实现这样一个功能。在主函数中,先读入一个整数,然后调用这个递归函数。在递归函数中检测一下,如果形式参数的值大于9就去掉形式参数的个位数后,递归调用自身,然后在每一次的返回前输出形式参数的个位数。include <stdio.h> ...

用C++语言编写程序,递归函数
1、在数学上,关于递归函数的定义如下:对于某一函数f(x),其定义域是集合A,那么若对于A集合中的某一个值X0,其函数值f(x0)由f(f(x0))决定,那么就称f(x)为递归函数。 在编程语言中,把直接或间接地调用自身的函数称为递归函数。函数的构建通常需要一个函数或者一个过程来完成。2、递归...

相似回答