C语言字符数组与浮点数加法问题

例如:a[4]={'1','2','.','3'}与数字0.2相加,将相加得到的结果存放在另一个字符数组中
可以将字符数组先转换成浮点数,前提是一定要能进位,最后可以把浮点数再转换成字符数组。
除了下面的所谓简单的作法,是否还有其他作法。
因为 Keil 3 编译器做不了这个转换

#include <stdio.h>
int main()
{
int i;
float f1,f2,k=0.2;
char a[4]={'1','2','.','3'},b[4]={0};
sscanf(a,"%f",&f1);
f2=f1+n;
sprintf(b,"%f",f2);
for(i=0;i<4;i++)
{
printf("b[%d]='%c'\n",i,b[i]);
}
return 0;
}
// 重点是sprintf 和 sscanf这两个函数的应用,这是两个无比强大的函数,会用他很多问题会变得很简单 。
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-12-22
得先问一下,是否允许先将字符数组里表示的数转换为float型获double型的数?
还有,字符数组的大小(也就是输入的浮点数的位数)有没有限制?追问

可以将字符数组先转换成浮点数,前提是一定要能进位,最后可以把浮点数再转换成字符数组。

追答

那就简单了,有人已经写了。。。

第2个回答  2012-12-22
楼主好,你这做法倒是让我很感兴趣,和整数的高精度算法差不多,我可以认为是浮点数的高精度算法,我今晚做一做,明日给楼主答复,可好?追问

OK, 等你消息。

第3个回答  2019-12-29
#include
<stdio.h>
int
main()
{
int
i;
float
f1,f2,k=0.2;
char
a[4]={'1','2','.','3'},b[4]={0};
sscanf(a,"%f",&f1);
f2=f1+n;
sprintf(b,"%f",f2);
for(i=0;i<4;i++)
{
printf("b[%d]='%c'\n",i,b[i]);
}
return
0;
}
//
重点是sprintf

sscanf这两个函数的应用,这是两个无比强大的函数,会用他很多问题会变得很简单
第4个回答  2012-12-22
stdlib.h头文件下的库函数:atof(),自己查查吧,记忆深刻。veket的小号已经回答的很好了。

C语言字符数组与浮点数加法问题
{ printf("b[%d]='%c'\\n",i,b[i]);} return 0;} \/\/ 重点是sprintf 和 sscanf这两个函数的应用,这是两个无比强大的函数,会用他很多问题会变得很简单 。

C语言 初学关于整型和浮点型相加得问题
因为浮点数存的并不是精确的数字,如果感兴趣可以查一些文献。这也是你需要注意的问题,比如如果想比较一个浮点数是否大于1,不要写x > 1 ,最好写为x + 0.000001 > 1,消除误差。

C语言输入一个数组后将数组里的数相加,为什么输出结果不对?_百度知 ...
第一,定义的浮点数变量sum没有初始值,应该在定义的时候给他赋初始值为0。第二,循环体没有加花括号,导致只有读入语句是执行循环的,而下面的累加到sum的语句则要到循环结束以后才执行一次,起不到累加的作用。第三,格式化输入语句scanf在给float类型输入时是不能指定小数位数的(最多只能限定总位数...

将浮点数加减运算流程用c语言写出来!!!
将浮点数加减运算用c语言写出来 float f1 = 1.0f;float f2 = 2.0f;float f3;f3 = f1+f3;printf("%d",&f3);

c语言中整形数能和浮点数做运算吗?
c语言中整形数能和浮点数可以做运算。在C语言中,不同数据类型的量混合运算时,会发生数据类型的自动转换,在由编译系统自动完成。自动转换遵循以下规则:1.若参与运算量的类型不同,则先转换成同一类型,然后进行运算。2.转换按数据长度增加的方向进行,以保证精度不降低。所以整数可以和浮点数计算。参考...

C语言浮点数的加法
float占32位 有效数字是6位;范围是:-3.4x10(-38) ~ 3.4x10(38)你说的数据 5000.1234 是可以的

c语言1加到10000,用float型存储结果为什么会出错?
并且计算机内部采用二进制指数形式对数据进行存储, 在运算的时候存在截断误差.一般情况下,C中的浮点数常量为double类型,只是将double类型的转换成float的类型,那就已经发生了精度损失。然后是和int相加,也是转换成double进行,然后再转换回来,又发生了精度损失。用double肯定没有问题。*\/ ...

C语言中:字符型*(乘)整数型=什么型?;字符型+(加)浮点型=什么型?;double...
C语言里,字符型只不过是一种范围较小的int型,所以计算时按照从范围从小到大的顺序进行类型转换,也就是说 char * int = int char + float = float 至于 double - float ,按相同的原则,先自动把float转换为double型,然后再做减法。

用C语言编一个程序,实现一个单精度浮点数和一个整型数两者按字节相加求...
{ int bisNative = 0;\/\/是否为负数 int na = *(int*)&fa;\/\/float当做int运算 int nHighMask = 0xFF<<23;\/\/幂的指数蒙版 int nMask = ((1<<23) - 1);\/\/底数蒙版 int nMe = (1<<23)+ (na & nMask);\/\/底数 int nPower = ((na & nHighMask)>>23) - 127;\/\/幂的...

如何运用C语言的整型和浮点数实现加减乘除计算
对于加减乘三种运算,可以直接用整数进行。对于除法,C语言中两个整数相除,结果仍然是整数(只取商的部分,忽略余数),如果想得到除法的精确值(例如10\/4=2.5),可以使用浮点数参与计算,方法是把被除数乘以1.0,然后再除以除数,结果就是浮点数了。

相似回答
大家正在搜