社区讨论
蒟蒻求救:为啥洛谷IDE和本地IDE结果不一样?
P1957口算练习题参与者 7已保存回复 9
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 9 条
- 当前快照
- 1 份
- 快照标识符
- @lobvrnhp
- 此快照首次捕获于
- 2023/10/30 03:45 2 年前
- 此快照最后确认于
- 2023/11/04 08:47 2 年前
CPP
#include <bits/stdc++.h>
#include <cstring>
using namespace std;
int main(){
int n,f;
cin>>n;
cin.ignore();
for(int k=1;k<=n;k++){
string line;
getline(cin,line);
if(line[0]=='a'||line[0]=='b'||line[0]=='c'){
int p,s1=0,s2=0;
for(int i=2;i<line.size();i++){
if(line[i]==' '){
p=i;
break;
}
else if(line[i]=='-'){
s1=-1;
}
else{
if(line[i-1]=='-')s1*=(line[i]-'0');
else s1=s1*10+(line[i]-'0');
}
}
for(int i=p+1;i<line.size();i++){
if(line[i]=='-'){
s2=-1;
}
else{
if(line[i-1]=='-')s2*=(line[i]-'0');
else s2=s2*10+(line[i]-'0');
}
}
if(line[0]=='a'){
f=1;
int x=s1+s2,s=0;
if(x<=0)s++;
while(x!=0){
x/=10;
s++;
}
int l=line.size()-1+s;
cout<<s1<<'+'<<s2<<'='<<s1+s2<<endl<<l;
}
if(line[0]=='b'){
f=2;
int x=s1-s2,s=0;
if(x<=0)s++;
while(x!=0){
x/=10;
s++;
}
int l=line.size()-1+s;
cout<<s1<<'-'<<s2<<'='<<s1-s2<<endl<<l;
}
if(line[0]=='c'){
f=3;
int x=s1*s2,s=0;
if(x<=0)s++;
while(x!=0){
x/=10;
s++;
}
int l=line.size()-1+s;
cout<<s1<<'*'<<s2<<'='<<s1*s2<<endl<<l;
}
}
else if(line[0]!='a'&&line[0]!='b'&&line[0]!='c'){
int p,s1=0,s2=0;
for(int i=0;i<line.size();i++){
if(line[i]==' '){
p=i;
break;
}
else if(line[i]=='-'){
s1=-1;
}
else{
if(line[i-1]=='-')s1*=(line[i]-'0');
else s1=s1*10+(line[i]-'0');
}
}
for(int i=p+1;i<line.size();i++){
if(line[i]=='-'){
s2=-1;
}
else{
if(line[i-1]=='-')s2*=(line[i]-'0');
else s2=s2*10+(line[i]-'0');
}
}
if(f==1){
int x=s1+s2,s=0;
if(x<=0)s++;
while(x!=0){
x/=10;
s++;
}
int l=line.size()+2+s;
cout<<s1<<'+'<<s2<<'='<<s1+s2<<endl<<l;
}
if(f==2){
int x=s1-s2,s=0;
if(x<=0)s++;
while(x!=0){
x/=10;
s++;
}
int l=line.size()+2+s;
cout<<s1<<'-'<<s2<<'='<<s1-s2<<endl<<l;
}
if(f==3){
int x=s1*s2,s=0;
if(x<=0)s++;
while(x!=0){
x/=10;
s++;
}
int l=line.size()+2+s;
cout<<s1<<'*'<<s2<<'='<<s1*s2<<endl<<l;
}
}
if(k<n)cout<<endl;
}
return 0;
}
回复
共 9 条回复,欢迎继续交流。
正在加载回复...

