求大神帮助下

leonliu 2011-10-21 10:36:06
#include <iostream>
#include <string>
using namespace std;

long b2ten (char *a,int b)//输入一个b进制的数,输出该数的十进制的数值
{ int i,temp=0;
int len=strlen(a);
for (i=0;i<len;i++){
if(a[i]-'0'>=b)
return -1;
temp*=b;
temp+=a[i]-'0';
}
return (long)temp;
}

int main()
{int b;

char a1[8],a2[8],a3[3];

long b1,b2,b3;
cout <<"please input three numbers"<<endl;

cin>>*a1>>*a2>>*a3;
for (b=2;b<16;b++){
b1=b2ten(a1,b);
b2=b2ten(a2,b);
b3=b2ten(a3,b);
if(b1==-1||b2==-1||b3==-1)
cout<<"there is no answer !fuck!"<<endl;
if(b1*b2==b3)
cout<<b<<endl;
break;

}
return 0;
}
输入3个数,然后输出一个能满足这3个数的乘法的最小数值,不知道为什么
if(b1*b2==b3)
cout<<b<<endl;
这句话不能表达,求大神相助;
...全文
88 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
qing_ping 2011-10-24
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 woshiwanghao_hi 的回复:]
if(b1*b2==b3)
这句话应该写成if((b1*b2)==b3)
否则就是先把b3赋值给b2在乘以b1;
典型的语法错误
[/Quote]


呃呃呃,楼主的是==,是逻辑判断,不是=。*的优先级大于==。没有错
haoshenwang 2011-10-23
  • 打赏
  • 举报
回复
if(b1*b2==b3)
这句话应该写成if((b1*b2)==b3)
否则就是先把b3赋值给b2在乘以b1;
典型的语法错误
qing_ping 2011-10-21
  • 打赏
  • 举报
回复
b1*b2相乘后可能越界

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧