Files
C_code/C语言/翁凯C语言/3/念数字.c
T
Serendipity 93c16edb5a 更新MD文件路径引用
- 修正主README.md中的所有路径引用,使其与当前文件结构一致
- 更新翁凯C语言学习指南链接路径
- 更新五子棋AI项目文档链接路径
- 更新数据结构学习文档链接路径
- 修正编译说明和学习模块使用指南中的目录路径
- 改进五子棋README.md的编译运行说明,增加Windows和Linux/macOS的分平台指导
- 确保所有文档链接和路径引用都能正确工作
2025-10-17 10:52:27 +08:00

96 lines
1.8 KiB
C

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
int num_weishu(int num) // 判断数字位数
{
int n = 0;
num = abs(num);
if (num == 0)
{
return 1;
}
while (num > 0)
{
num /= 10;
n++;
}
return n;
}
int main()
{
int x;
int a = 0;
int b = 0;
int m = 0;
printf("请输入一个整数:");
scanf("%d", &x);
a = num_weishu(x);
b = (int)(pow(10, a - 1) + 0.1); // pow函数是次方运算的函数名,+0.1是为了避免浮点数误差
printf("这个数字的位数是%d。\n", a);
if (a > 9)
{
printf("超过最大支持位数!\n");
return -1;
}
else
{
if (x < 0) // 处理负号
{
printf("-");
}
while (b > 0)
{
m = x / b;
switch (m)
{
case 0:
printf("ling ");
break;
case 1:
printf("yi ");
break;
case 2:
printf("er ");
break;
case 3:
printf("san ");
break;
case 4:
printf("si ");
break;
case 5:
printf("wu ");
break;
case 6:
printf("liu ");
break;
case 7:
printf("qi ");
break;
case 8:
printf("ba ");
break;
case 9:
printf("jiu ");
break;
default:
break;
}
if (b > 9)
{
printf(" ");
}
x = x % b;
b = b / 10;
}
printf("\n");
}
return 0;
}