哪位大神帮忙看一下下面这个C++程序哪里错了? 50

高精度除法,结果是循环小数的话用括号括起来输入:105输出:2.0输入:23输出:0.(6)程序:#include<bits/stdc++.h>usingnamespac... 高精度除法,结果是循环小数的话用括号括起来
输入:
10
5
输出:
2.0

输入:
2
3
输出:
0.(6)

程序:
#include<bits/stdc++.h>
using namespace std;
int main(){
long long a,b,i,j;
string s,s1,s2;
bool q=false;
cin>>a>>b;
cout<<a/b<<".";
for(i=0;i<=100;i++){
a=a*10;
s+=char(a/b+'0');
a=a%b;
}
for(i=0;i<s.size();i++){
for(j=0;j<s.size()/2;j++){
s1=s.substr(i,j);
s2=s.substr(i+j,j);
if(s1==s2){
q==true;
break;
}
}
if(q==true){
break;
}
}
for(i=0;i<s.find(s1);i++){
cout<<s[i];
}
cout<<"("<<s1<<")"<<endl;
return 0;
}
展开
 我来答
紫薇参星
科技发烧友

2022-10-16 · 有一些普通的科技小锦囊
知道大有可为答主
回答量:5983
采纳率:92%
帮助的人:3592万
展开全部

改完的高精度除法的C++程序如下(见图,改动的地方见注释)

arongustc
科技发烧友

2022-10-16 · 智能家居/数码/手机/智能家电产品都懂点
知道大有可为答主
回答量:2.3万
采纳率:66%
帮助的人:5984万
展开全部
你除法的逻辑理清楚了么?先不要急着写代码,先用纸笔把逻辑想清楚
for(i=0;i<=100;i++){
a=a*10; //以这句为例,a=a*10,你没有去掉a/b的整数部分吧?所以结果肯定错误啊
s+=char(a/b+'0');
a=a%b;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式