处理整型字符类型

例题:给一个不多于5为的正整数,求:

1、求出它是几位数;

2、分别输出每一位数字;

3、按逆序输出各位数字;

第一题 思路:定义一个变量i,对其进行初始化;对给定的数字n进行除等操作,每除一次10,n的位数减一,i的数字加1;当n等于0时,i的值即为这个数的位数。

int GetFigures(int n)
{
   int i=0;
   while(n!=0)
   {
      n/=10;
      i++;
    }
    return i;
}

第二题 思路:在第一题 的基础上得到了的最高为是多少,用得到的这个i对n进行除操作,得到最高为,然后输出这个最高位,再对i减一,继续上述操作直到n等于0为之。

void print(	int n)
{
	int tmp = 1;
	int s = 1;
	while (n != 0)
	{
		for (int m = 5; m = 0; m--)
		{
			for (int i = m; m = 0; m--)
				tmp *= 10;
		}
		s = n / tmp;
		n%=tmp;
		printf("%d\n", s);
	}
}

第三题 思路:定义一个临时变量保存对n取余的值,然后对n求余操作,得到最低位的数字进行输出,然后对n进行除操作得到除去最低位的数字,循环至n=0时结束。


void printReverse(int n)
{
	int tmp = 0;
	while (n != 0)
	{
		tmp = n % 10;
		n /= 10;
		printf("%d", tmp);
	}
	printf("\n");
}

源代码:

#include
int GetFigures(int n)
{
	int i=0;
	while (n != 0)
	{
		n /= 10;
		i++;
	}
	return i;
}
void print(	int n)
{
	int tmp = 1;
	int s = 1;
	while (n != 0)
	{
		for (int m = 5; m = 0; m--)
		{
			for (int i = m; m = 0; m--)
				tmp *= 10;
		}
		s = n / tmp;
		n%=tmp;
		printf("%d\n", s);
	}
}
void printReverse(int n)
{
	int tmp = 0;
	while (n != 0)
	{
		tmp = n % 10;
		n /= 10;
		printf("%d", tmp);
	}
	printf("\n");
}
int main()
{
	printReverse(2356);
	print(2356);
	printf("%d\n",GetFigures(2356));
	return 0;
}

你可能感兴趣的:(处理整型字符类型)