扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
这个倒序的函数,就是如果没有读到回车符,就继续递归调用函数,直到读到回车符时才递归返回,这时才输出刚才地压到栈里的前面读到的字符,所以,输出是逆序的。
目前创新互联已为上千的企业提供了网站建设、域名、虚拟主机、成都网站托管、企业网站设计、泰兴网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
reverse(s+1);s[len - 1] = temp; //还原本次递归的最后一个字符 } } int main(){ char s[] = Hello!reverse(s);std:cout s;return 0;} 该注释的都注释了,不难理解,自己看吧。。
输入要处理的整数;取出各位;递归调用,以当前值除以10为参数;当值为0时退出。正序和反序输出,取决于递归调用和输出的位置关系。
这是利用递归的算法把数组的里的数据逆序输出而已,并没有真正的改变数组里面数据的顺序。
即输入1234,输出4321,就可以采用类似的方式:void reverse_int_output(int a){ char buf[20];sprintf(buf, %d, a);//将a转为字符串 reverse_output_str(buf);//调用刚才的函数反序输出。
1、}分析:首先,输入的是一个整数,因此最前面一位数不是零,所以我们可以用除10取余法写。a=num%10就是输出数字的最后一位然后除10剔除数字最后一位,这样数字倒数第二位就会输出。以此类推,就能逆序输出数字。
2、思路:逆序输出一个整数可以对其除10直到其为0为止,并输出其对10取余,最后的结果就是这个整数的逆序。
3、分析:首先,输入的是一个整数,因此最前面一位数不是零,所以我们可以用除10取余法写。a = num % 10 就是输出数字的最后一位 然后除10剔除数字最后一位,这样数字倒数第二位就会输出。以此类推,就能逆序输出数字。
4、/*求一个C语言程序:输入正整数,要求以相反数顺序输出该数。
算法:递归函数传入正整数,先输出最末尾数字,再除以10用递归函数继续迭代,直到该正整数为0时终止递归。
data==0){ return;} printf(%d,data%10);printData(data/10);} int main(){ int data;printf(Enter a number:);scanf(%d,&data);printData(data);printf(\n);return 0;} 程序如上,可以运行。
实现指定功能的递归函数如下,调用时只要使用reverse(n)就可以得到自然数n的逆序数输出。
问题分析:要把整数逐位输出,无论正序还是反序,都需要将各个位分离。在C中的做法就是,通过对10取余,取出个位,然后通过除以10,起到“移位”的效果。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流