13.递归逆序输出字符串

本文介绍如何使用C语言通过递归方法逆序输出以'.'结尾的字符串。主要思路是利用getchar()读取字符,当遇到'.'时停止,递归过程中逐个字符输出,用putchar()实现逆序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目:对输入的一个以‘.’结尾的字符串,采用递归,进行逆序输出。

分析思路:由于逆序输出,一个一字母一个字母的输出,因此这里用到getchar和putchar,来一个字母一个字母的读取和输出。

递归:这里面重复的动作是,一个字母一个字母的敲,每次递归里面的字母不同,直到遇见'.'结束,因此重复语句即为输入一个字母getchar();输入完后进入递归,递归条件为!='.',递归后逆序输出,所以,需要在递归语句后进行putchar()的输出。

代码如下:

运行函数前,字符串先判断和输入完毕,再传进去;

void nixu(char s[20],int length)
{
	printf("%c",s[length-1]);//从数组末尾进行输出
	if(length>0)             //当字符量个数为0时,跳出递归,每递归依次,length-1
		nixu(s,length-1);
}

                
### Java实现逆序输出整数 以下是通过Java编写的程序来实现逆序输出一个整数的功能。此方法采用字符串操作的方式完成,适用于任何非负整数。 #### 方法描述 该方法的核心思路是将输入的整数转换为字符串形式,随后利用StringBuilder类中的`reverse()`函数对其进行反转,最后再将其转回整数类型并打印出来[^1]。 ```java import java.util.Scanner; public class ReverseInteger { public static void main(String[] args){ Scanner scanner = new Scanner(System.in); System.out.println("请输入一个整数:"); int number = scanner.nextInt(); String strNumber = Integer.toString(number); // 将整数转化为字符串 StringBuilder sb = new StringBuilder(strNumber); sb.reverse(); // 反转字符串 try{ int reversedNumber = Integer.parseInt(sb.toString()); // 转换回整数 System.out.println("逆序后的整数:" + reversedNumber); } catch (NumberFormatException e) { System.out.println("输入过大导致溢出, 结果可能不准确"); } } } ``` 上述代码中引入了异常捕获机制以应对极端情况下的数值溢出问题。如果原始整数非常大,在反转过程中可能会超出int类型的取值范围,此时会抛出`NumberFormatException`异常。 另外一种方式则是模仿C语言中的递归逻辑,逐位提取原数字的每一位并通过构建新数字的形式达到反向效果: ```java public class RecursiveReverse { public static void reverseAndPrint(int num){ if(num < 10){ System.out.print(num); } else { System.out.print(num % 10); reverseAndPrint(num / 10); } } public static void main(String[] args){ Scanner scanner = new Scanner(System.in); System.out.println("请输入一个正整数:"); int inputNum = scanner.nextInt(); reverseAndPrint(inputNum); } } ``` 这里定义了一个名为`reverseAndPrint`的方法用于执行实际的递归调用过程。每当进入一次递归都会先输出当前最低有效位上的数字,接着继续处理剩余部分直到整个数字被完全解析完毕为止[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奔心小韩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值