- 第一问:求出它是几位数
- 第二问:分别输出每一位数字
- 第三问:按逆序输出各位
#include <stdio.h>
#include <stdlib.h>
/*
* @Author: Lumen
* @Date: 2021-09-28 18:30:52
* @LastEditTime: 2021-10-10 17:12:50
* @LastEditors: Lumen
* @Description:
* 🐱🏍🐱🏍🐱🏍🐱🏍🐱🏍🐱🏍🐱🏍🐱🏍🐱🏍🐱🏍
*/
int main()
{
int num_length = 0;
int is_negative_number = 0;
long long original_num, num;
char num_str[20];
printf("输入一个整数:");
scanf("%lld", &num);
if (num == 0)
{
printf("0");
return 0;
}
else if (num < 0)
{
num = -num;
is_negative_number = 1;
}
original_num = num; //保留初值
//第一问
while (num != 0)
{
num /= 10;
num_length += 1;
}
printf("这是一个%d位数\n", num_length);
itoa(original_num, num_str, 10); //数字转字符数组
//第二问
printf("顺序输出每一位数字:\n");
if (is_negative_number)
{
printf("-");
}
for (int i = 0; i < num_length; i++)
{
printf("%c", num_str[i]);
}
printf("\n");
//第三问
printf("逆序输出每一位数字:\n");
if (is_negative_number)
{
printf("-");
}
for (int i = num_length; i >= 0; i--)
{
printf("%c", num_str[i]);
}
return 0;
}