整数/小数以字符串形式输出
2016-09-15 14:37
218 查看
1、问题描述
(1)、现在从键盘输入一个整数(以%d格式符输入),要求以装换成字符串的形式输出;
(2)、现在从键盘输入一个小数和小数位数(%lf%d),要求以字符串的形式输出;
这2个问题本身并不难,但是考虑全面和从算法上的优化确实不容易的,需要仔细认真的考虑!
2、用C实现
在VC下面用的VC++6.0版本实现
3、算法分析
(1)、我用的是if...else if...else if来判断这个数是几位数,因为用这个数每次/=10也可以判断是几位数,但是效率比较低,用if判断的方法最多10次,就可以知道是几位数字。
(2)、其次,我知道了是几位数,就可以让(data/q)%10,data不变,让q/=10,在循环中每次调用这个语句,就可以从最高位--->最低位顺序取出,再加上'0',就转换为一个一个的字符了,输出即可。
(1)、现在从键盘输入一个整数(以%d格式符输入),要求以装换成字符串的形式输出;
(2)、现在从键盘输入一个小数和小数位数(%lf%d),要求以字符串的形式输出;
这2个问题本身并不难,但是考虑全面和从算法上的优化确实不容易的,需要仔细认真的考虑!
2、用C实现
在VC下面用的VC++6.0版本实现
#include<stdio.h> void printfInt(int data); void printfDouble(double data, int count); void printfDouble(double data, int count){ int d = (int)data; double x = data - d; int i, tmp; int p = 1; printfInt(d); printf("."); for(i = 0; i < count; i++){ p *= 10; } tmp = (int)(p*x+0.5);//在强转时,由于有截断误差,所以加上0.5,保证了小数点最后一位的取值是正确的。 printfInt(tmp); } void printfInt(int data){ int q = 1; if(data > 1000000000){ q = 1000000000; }else if(data > 100000000){ q = 100000000; }else if(data > 10000000){ q = 10000000; }else if(data > 1000000){ q = 1000000; }else if(data > 100000){ q = 100000; }else if(data > 10000){ q = 10000; }else if(data > 1000){ q = 1000; }else if(data > 100){ q = 100; }else if(data > 10){ q = 10; } for(; q; q /= 10){ printf("%c", '0' + (data/q)%10); } } int main(void){ int number; double x_number; int bit; printf("请输入一个整数 : "); scanf("%d", &number); printf("请输入小数,和小数位数 : "); scanf("%lf%d", &x_number, &bit); printfInt(number); printf("\n"); printfDouble(x_number, bit); printf("\n"); }运行结果
3、算法分析
(1)、我用的是if...else if...else if来判断这个数是几位数,因为用这个数每次/=10也可以判断是几位数,但是效率比较低,用if判断的方法最多10次,就可以知道是几位数字。
(2)、其次,我知道了是几位数,就可以让(data/q)%10,data不变,让q/=10,在循环中每次调用这个语句,就可以从最高位--->最低位顺序取出,再加上'0',就转换为一个一个的字符了,输出即可。
相关文章推荐
- 输入一个整数,将这个整数以字符串的形式逆序输出
- 输入一个整数,将这个整数以字符串的形式逆序输出 程序不考虑负数的情况,若数字含有0,则逆序形式也含有0,如输入为100,则输出为001
- 将整数以字符串的形式逆序输出
- 输入一行整数,转化为字符串形式输出
- 将整形整数转化为数组的形式分别依次存到数组当中,然后倒叙输出、把原本字符串倒序输出。截取字符串等等
- 输入一个整数,将这个整数以字符串的形式逆序输出 程序不考虑负数的情况,若数字含有0,则逆序形式也含有0,如输入为100,则输出为001
- 输入一个整数,将这个整数以字符串的形式逆序输出
- 将double型的整数部分和小数部分别输出到两个字符串中
- strtob 十进制整数n变为任意进制以字符串形式输出
- 将一个整数(数字或长字符串形式)转换成中文输出
- JAVA 输入一个浮点,分别输出整数部分和小数部分
- C/C++编程:整数转字符串输出
- 【练习】输入一个表示整数的字符串,把该字符串转换成整数并输出
- JAVA 输入一个浮点,分别输出整数部分和小数部分
- 整数数组输出字符串的问题
- 输入一个表示整数的字符串,把该字符串转换成整数并输出
- 在Java中,如何控制一个double数以两位小数形式输出
- PHP任意位数的大整数n统计n中各个数字出现的次数,并将结果以表格形式输出
- 杂谈——如何将字符串以语音形式输出
- BOM查找指定子项的所有父项,并以字符串的形式输出