永发信息网

C语言分数输出

答案:3  悬赏:40  手机版
解决时间 2021-01-09 00:19
  • 提问者网友:锁深秋
  • 2021-01-08 07:12
C语言分数输出
最佳答案
  • 五星知识达人网友:迷人又混蛋
  • 2021-01-08 07:21
如果采用float或者double定义数据类型,则无法以分数形式输出,原因是该数据类型的计算结果会采用二进制小数表示,出现误差而无法用分数精确表示。
如果需要用分数形式输出,最好的方法是采用两个int类型的变量储存分子和分母,手动计算分数的加减乘除,这样输出的时候只需要按照整数的输出方式,手动添加分数线即可。
具体方法可以参考如下程序段:
int num; // 定义分子
int den; // 定义分母
double a = 3.5;
num = 7; // 3.5的分子
den = 2; // 3.5的分母
printf("%d\n", num); // 输出分子并换行
printf("----\n"); // 输出分数线并换行
printf("%d\n", den); // 输出分母并换行
全部回答
  • 1楼网友:迷人又混蛋
  • 2021-01-08 09:11
main(){
float c;
c=(float)3/2;
//c=3.0/2;
printf("%f",c);
getch();
}
数据类型转换问题。
3/2 3.2都是INT 1.5只会取整数部分1
在转换就是1.00
  • 2楼网友:胯下狙击手
  • 2021-01-08 07:44
因为C=3/2;这个表达式的计算顺序是:先计算3/2 这个计算是整型的计算 所以结果是1 然后再赋给float 类型的C 所以结果是1.0000000 呵呵,如果要想得出1.50000,那么就将3/2改为3/2.0,就可以了
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯