c++ - 在我的代码中输出给出 08 的错误在哪里
问题描述
编写一个有 4 个参数的 C++ 函数,第一个参数是一个字符串,作为第一个操作数,第二个参数是另一个字符串,作为第二个操作数,第三个参数是一个字符,可以是“+”或“ -”或“*”,最后一个参数是操作数的基数。该函数必须返回一个字符串,其中包含对两个操作数应用运算的结果(结果必须在相同的基数中)。输入和输出示例:
第一个操作数是:1243
第二个操作数是:441
运算是: -
基数是:5
结果是:302
我的代码:
#include <iostream>
#include <cmath>
using namespace std;
int function( int oper1 , int oper2 , char sign , int base)
{
int ansdec,rem,n;
switch(sign)
{
case '+':
ansdec=oper1+oper2;
cout<<ansdec;
break;
case '-':
ansdec=oper1-oper2;
cout<<ansdec;
break;
case '*':
ansdec=oper1*oper2;
cout<<ansdec;
break;
}
while(ansdec>0)
{
rem=ansdec%10;//rem=2
ansdec=ansdec/10;//ansdec=77/5=15
n=(rem*10)+rem;//n=20*10+3=203
}
int reverse=0,re;
while(n>0)
{
re=n%10;//re=3
reverse=(reverse*10)+re;//rev=3
n=n/10;
}
return reverse;
}
int main()
{
int oper1,oper2,base;
char sign;
cout<<"enter your problem"<<endl;
cin>>oper1>>oper2>>sign>>base;
cout<<"The first operand is:"<<oper1<<endl;
cout<<"The second operand is:"<<oper2<<endl;
cout<<"Theoperation is:"<<sign<<endl;
cout<<"The base is:"<<base<<endl;
int result=0,i=0,x,y;
while(oper1>0)
{
x=oper1%10;
y=x*pow(base,i);
oper1=oper1/10;
result=result+y;
i++;
}
int r=0,c=0,z,v;
while(oper2>0)
{
z=oper2%10;
v=z*pow(base,c);
oper2=oper2/10;
r=r+v;
c++;
}
cout<<function(oper1,oper2,sign,base)<<endl;
}
解决方案
推荐阅读
- raspberry-pi3 - BLE gatttool 从 bluno 读取串行数据?
- javascript - ES6 Classes that depend on each other in static variables
- java - 如何使用spring mvc将参数发送到服务器端并将json返回到数据表
- java - Spring Data Jpa 数据获取,其中父实体在其他实体上有外键
- c# - 如何在c#中以多窗口形式添加相同的计时器
- java - Android Firebase 数据库已损坏
- extjs - 如何在 Touch Sencha 中对齐左侧的单选按钮?
- postgresql - 从 oracle 迁移后 Postgresql 数据库大小变小
- eclipse-plugin - 如何在 RCP 4 应用程序中自定义
- php - 根据给定的输入数组 input[2,4,1,6] 打印模式