题目:分数化小数
自己想了下没想出来参考了别人的代码用数组存储小数部分才解开,不过发现参考博主的代码没有四舍五入于是想了下然后加了个进位判断。代码如下
#include<iostream>
#include<cmath>
using namespace std;
int a,b,c;
int main()
{
while(cin>>a>>b>>c){
if(a==b&&b==c&&a==0)
break;
int z=a/b;
int x=a%b;
int arr[110];
for(int i=1;i<=c+1;i++){
x=x*10;
arr[i]=x/b;
x=x%b;
}
int p=0;//标志进位;
if(arr[c+1]>=5){
p=1;
for(int i=c;i>=1;i--){
if(arr[i]+p==10){
arr[i]=0;
p=1;
}
else if(p==1){
arr[i]+=p;
p=0;
}
}
}
if(p==1)
z=z+1;
cout<<z<<".";
for(int i=1;i<=c;i++){
cout<<arr[i];
}
cout<<endl;
}
return 0;
}