数字反转(C语言)

例题:

题目描述

给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(如:输入-380,输出-83)。

输入描述

输入共1行,一个整数N。

输出描述

输出共1行,一个整数,表示反转后的新数。

样例输入

123
样例输出

321

AC代码:

方法一:
优点:此方法不用考虑前置0的问题

#include <stdio.h>
int main()
{
	int n,s=0;
	scanf("%d",&n);
	while(n!=0)
	{
		s=s*10+n%10;
		n=n/10;
	}
	printf("%d\n",s);
}

方法二:
优点:此方法逻辑过程分析好理解

#include <stdio.h>
#include <string.h>
int main()
{
	char s[100];
	gets(s);
	int n,f=0,t;
	n=strlen(s)-1;    //统计字符串有多长,注意下标是从0开始的,值要减1
	while(s[n]=='0')  //计算第一个非’0’位置
	{
		n--;
		t=n;
	}
	if(s[0]=='-')     //符号特判
	{
		f=1;
		printf("-");
	}
	for(int i=n;i>=1;i--)    //从非’0’位置倒序输出
	{
		printf("%c",s[i]);
	}
	if(f==0)               //单独输出
	{
		printf("%c",s[0]);
	}
	return 0;
}

在这里插入图片描述

发布了17 篇原创文章 · 获赞 15 · 访问量 541

猜你喜欢

转载自blog.csdn.net/qq_46009744/article/details/104693129
今日推荐