数字反转函数

此函数主要用来反转任意整数,例:123 -> 321.

#include<stdio.h>
void fanzhuan(int a)
{            
	int sum = 0;
	while (a != 0)     //数字反转
	{
		sum *= 10;
		sum += a % 10;
		a /= 10;
	}
	printf("%d", sum);

}

 然后我们可以健壮一下这个代码,让其输入负数也能倒序输出

#include<stdio.h>
void fanzhuan(int a)
{
	int flage = 0;   // 用作判断正负
	int sum = 0;
	if (a < 0)
	{
		a = -a;
		flage = 1;
	}
	while (a != 0)     //数字反转
	{
		sum *= 10;
		sum += a % 10;
		a /= 10;
	}
	if (flage == 0)
	{
		printf("%d", sum);
	}
	else
	{
		printf("-%d", sum);   //输出负数形式
	}
}

 这样就可以了,当然也有别的方法比这个简单。

我们来补充一下主函数:

#include<stdio.h>
void fanzhuan(int a);
int main()
{
	int a;
	scanf("%d", &a);
	fanzhuan(a);
	return 0;
}

void fanzhuan(int a)
{
	int flage = 0;
	int sum = 0;
	if (a < 0)
	{
		a = -a;
		flage = 1;
	}
	while (a != 0)     //数字反转
	{
		sum *= 10;
		sum += a % 10;
		a /= 10;
	}
	if (flage == 0)
	{
		printf("%d", sum);
	}
	else
	{
		printf("-%d", sum);
	}
}

看一下运行结果:

要编写一个函数,使其能够反转一个整数或字符串中的数字顺序,你可以根据输入的数据类型提供两种不同的函数。这里分别介绍这两个版本的函数: 1. **整数反转**: ```c #include <stdio.h> int reverseInteger(int num) { int reversed = 0; while (num != 0) { reversed = reversed * 10 + num % 10; num /= 10; } return reversed; } int main() { int input; printf("Enter an integer: "); scanf("%d", &input); int reversed = reverseInteger(input); printf("Reversed integer: %d\n", reversed); return 0; } ``` 在这个例子中,`reverseInteger` 函数接收一个整数 `num`,通过不断地取余数(%)和除以10(/),逐步累加到 `reversed` 中。 2. **字符串反转**: ```c #include <stdio.h> #include <string.h> char* reverseString(char str[]) { int length = strlen(str); char reversed[length]; for (int i = 0; i < length; i++) { reversed[i] = str[length - i - 1]; } reversed[length] = '\0'; // 添加终止符 return reversed; } int main() { char str[100]; printf("Enter a string: "); fgets(str, sizeof(str), stdin); // 注意处理换行符 str[strcspn(str, "\n")] = '\0'; // 去掉换行符 char* reversedStr = reverseString(str); printf("Reversed string: %s\n", reversedStr); free(reversedStr); // 不是必须的,但推荐释放内存 return 0; } ``` 在这个版本中,`reverseString` 函数接收一个字符数组 `str`,创建一个新的字符数组 `reversed` 并填充反转后的字符。 如果你希望使用一种通用的方式来处理这两种类型的输入,你可以添加一个类型检查并调用相应的函数
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值