一.题目
习题2-5 分数化小数
输入正整数a,b,c,输入a/b的小数形式,输入包含多组数据,结束标记为a=b=c=0精确到小数点后c位。a,b≤106,c≤100
二.分析
“%.变量f” 是不可能的。因此我们需要一个个位去输出,乘以10再取余10就可以找到位来输出了。最后一步要考虑舍四进五。
三.代码
#include<stdio.h>
int main()
{
int a,b;
int c;
int count=1;
while(scanf("%d%d%d",&a,&b,&c)==3) //每次读取三个数
{
int inter=0; //整数
int smalinter=0; //小数
int i=1;
if(a==0&&b==0&&c==0) return;
inter = a/b;
printf("Case %d : %d.",count,inter);
double temp=(a*1.0/b);
while(i<=c)
{
temp *=10; //每次乘以10
smalinter =(int) temp%10; //强制类型转换 并取余10
if(i!=c)
{
printf("%d",smalinter);
}
else
{
temp*=10;
if((int)temp%10 >5) //考虑舍四进五
printf("%d",smalinter+1);
}
i++;
}
printf("\n");
count++;
}
return 0;
}
分数转小数算法解析
本文介绍了如何将分数转换为小数,特别是针对输入正整数a, b, c的情况,要求精确到小数点后c位。在编程实现中,通过逐位输出并考虑舍入规则来解决这个问题。"
113892059,10553951,Pro*C并发数据库连接与创建数据库链,"['C语言编程', '数据库连接', '并发处理', 'MySQL数据库', '数据库链']
3769

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



