社区讨论
求助
P1957口算练习题参与者 1已保存回复 1
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 1 条
- 当前快照
- 1 份
- 快照标识符
- @locnarcc
- 此快照首次捕获于
- 2023/10/30 16:35 2 年前
- 此快照最后确认于
- 2023/11/05 03:38 2 年前
惊,同样的程序
Vs code对了:

提交错了:

IDE一试也错了:

代码:
CPP#include<bits/stdc++.h>
using namespace std;
char s[15],o;
int t,i,j,f[3],len;
int _len(int x){
int cnt=0;
while(x)
cnt++,x/=10;
return cnt;
}
int main(){
scanf("%d\n",&t);
while(t--){
cin.getline(s,15);
f[1]=f[2]=0;
len=strlen(s);
switch(s[0]){
case 'a':{
o='a';
for(i=2,j=1;i<len;i++)
if(s[i]!=' ')
f[j]=f[j]*10+(s[i]-'0');
else
j=2;
printf("%d+%d=%d\n%d\n",f[1],f[2],f[1]+f[2],len-1+_len(f[1]+f[2]));
break;
}
case 'b':{
o='b';
for(i=2,j=1;i<len;i++)
if(s[i]!=' ')
f[j]=f[j]*10+(s[i]-'0');
else
j=2;
printf("%d-%d=%d\n%d\n",f[1],f[2],f[1]-f[2],len-1+_len(f[1]-f[2]));
break;
}
case 'c':{
o='c';
for(i=2,j=1;i<len;i++)
if(s[i]!=' ')
f[j]=f[j]*10+(s[i]-'0');
else
j=2;
printf("%d*%d=%d\n%d\n",f[1],f[2],f[1]*f[2],len-1+_len(f[1]*f[2]));
break;
}
default:{
for(i=0,j=1;i<len;i++)
if(s[i]!=' ')
f[j]=f[j]*10+(s[i]-'0');
else
j=2;
if(o=='a')
printf("%d+%d=%d\n%d\n",f[1],f[2],f[1]+f[2],len+1+_len(f[1]+f[2]));
else if(o=='b')
printf("%d-%d=%d\n%d\n",f[1],f[2],f[1]-f[2],len+1+_len(f[1]-f[2]));
else
printf("%d*%d=%d\n%d\n",f[1],f[2],f[1]*f[2],len+1+_len(f[1]*f[2]));
break;
}
}
}
return 0;
}
求教大佬们。
回复
共 1 条回复,欢迎继续交流。
正在加载回复...