C语言的分数计算和输出格式问题
来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/12 23:35:50
C语言的分数计算和输出格式问题
比如说 1/3,要用什么格式输出?为什么计算的时候貌似被四舍五入了?N个分数相加,会因为四舍五入导致结果不正确?求教.
比如说 1/3,要用什么格式输出?为什么计算的时候貌似被四舍五入了?N个分数相加,会因为四舍五入导致结果不正确?求教.
C语言里面没有分数,1/3会被当作是1除以3来计算,结果是一个小数.要输出1/3,必须是像字符串一样的输出:printf("1/3");
也可以这样:int a = 1, b = 3; printf("%d/%d", a, b);
N个分数相加的结果还是会被当作小数处理,必须你自己设计算法让它成为a/b的形式
再问: 但是我这边使用float或者double貌似就直接取整了,(其中 有整数型变量,)
比如计算s=1+1/(1+2)+1/(1+2+3)+..........+1/(1+2+3+......+n).
分母是整形,然后我分部算,分部加,第二项1/(1+2)输出的结果是0.0000.而不是0.33333.为什么?
再答: 一个整数默认就是int类型。虽然s是double,但是右边的1,2,3.....n都是整数,所以做除法运算的时候已经丢掉小数部分了。你可以写成s=1.0 + 1.0/(1+2)+1.0/(1+2+3)...........
也可以这样:int a = 1, b = 3; printf("%d/%d", a, b);
N个分数相加的结果还是会被当作小数处理,必须你自己设计算法让它成为a/b的形式
再问: 但是我这边使用float或者double貌似就直接取整了,(其中 有整数型变量,)
比如计算s=1+1/(1+2)+1/(1+2+3)+..........+1/(1+2+3+......+n).
分母是整形,然后我分部算,分部加,第二项1/(1+2)输出的结果是0.0000.而不是0.33333.为什么?
再答: 一个整数默认就是int类型。虽然s是double,但是右边的1,2,3.....n都是整数,所以做除法运算的时候已经丢掉小数部分了。你可以写成s=1.0 + 1.0/(1+2)+1.0/(1+2+3)...........
关于C语言输出语句格式的问题.
C语言试题 计算并输出如下分数序列的和,3/4,4/5,5/6,……100/101
求C语言中printf用法,输出m.n格式输出的详解为什么这么写.
用C语言,分别计算并输出1!,,,和5!.
C语言编程:输入任意一个年份和月份,按格式输出该月份的公历日历
c语言数学计算和求和问题
C语言计算并输出1-10的平方值
用C语言输出CosX,SinX函数图像的问题,
C语言输出[m,n]区间素数的问题
C语言填空 从键盘输入5名学生的学号、姓名以及3门课成绩,计算每名同学的总分和平均分并按格式输出
c语言for的计算顺序问题
C语言,如何输出带引号(英文格式)的句子?