WangYinxiAlex @ 2023-05-14 17:43:21
#include<iostream>
#include<math.h>
using namespace std;
int a[51][2];
char b[51];
string c[51];
int ch(int n){
int sum=0;
if(n<0){
sum++;
n=abs(n);
}
while(n){
n/=10;
sum++;
}
return sum;
}
string imput(int n){
string x;
while(n){
char y=n%10+'0';
x=y+x;
n/=10;
}
return x;
}
int main(){
int n;
char s;
cin>>n;
for(int i=1;i<=n;i++){
char z;
if(!(cin>>z)){
b[i]=s;
}
else{
b[i]=z;
s=z;
}
cin>>a[i][0]>>a[i][1];
}
for(int i=1;i<=n;i++){
long long t;
char u=b[i];
c[i]+=imput(a[i][0]);
else if(u=='a'){
c[i]+='+';
t=a[i][0]+a[i][1];
}else if(u=='b'){
c[i]+='-';
t=a[i][0]-a[i][1];
}else if(u=='c'){
c[i]+='*';
t=a[i][0]*a[i][1];
}
c[i]+=imput(a[i][1]);
c[i]+='=';
cout<<c[i]<<t<<endl;
cout<<c[i].length()+ch(t)<<endl;
}
return 0;
}
为什么这个程序我就是没法让他没输入的字符改为上一个!!!
by DLYdly1105 @ 2023-05-15 16:32:19
呃呃呃,是这样子的。你第34行
if(!(cin>>z))
这样判断是没有用的。
比如样例那个
275 125
它会把那个“ 2 ”当成是运算符。
所以最好判断输入的
还有,你的
by WangYinxiAlex @ 2023-06-22 16:49:25
谢谢大佬!!!