主要学习了计算一个整数位数的方法
1.对数法,这是我觉得最简洁的方法
digits = log10(num)+1;2.整除法,利用c里整数除法的性质,除以10直到被除数等于0
digits = 1;
tmp = num;
while ( tmp/=10 )
digits++;完成程序如下:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
const char pinyin[10][5] = {"ling", "yi", "er", "san", "si",
"wu", "liu", "qi", "ba", "jiu"};
int main()
{
char ch;
int i, tmp, den;
int sum = 0, digits;
/* calculate the sum of the input */
while ((ch = getchar()) != '\n')
sum += atoi(&ch);
/* get the digits of result */
digits = log10(sum)+1;
/* output */
den = pow(10,digits-1);
tmp = sum;
for (i = 1; i <= digits; i++) {
printf("%s%c", pinyin[tmp/den], (i == digits) ? '\n' : ' ');
tmp %= den;
den /= 10;
}
return 0;
}

本文介绍了一种计算整数位数的方法,并通过C语言实现了一个程序,该程序不仅可以计算输入数字的位数,还能将计算结果转换成中文拼音进行输出。

1221

被折叠的 条评论
为什么被折叠?



