sgzdaq @ 2023-05-22 21:40:17
#include<stdio.h>
int main()
{
int n;
char s[50][14]={0};
char b[50]={0};
int c[50][2]={0};
int num[50]={0};
scanf("%d",&n);
getchar();
for(int i=0;i<n;i++)
{
for(int j=0;j<14;j++)
{
scanf("%c",&s[i][j]);
if(s[i][j]=='\n'&&j!=0)
{
break;
}
}
}
for(int i=0;i<n;i++)
{
if(s[i][0]=='a')
{
b[i]='+';
continue;
}
if(s[i][0]=='b')
{
b[i]='-';
continue;
}
if(s[i][0]=='c')
{
b[i]='*';
continue;
}
else
{
b[i]=b[i-1];
}
}
for(int i=0;i<n;i++)
{
if(s[i][0]=='a'||s[i][0]=='b'||s[i][0]=='c')
{
int j=2;
while(s[i][j]!=' ')
{
j++;
}
for(int k=2;k<j;k++)
{
c[i][0]=c[i][0]*10+(s[i][k]-'0');
}
int g=j+1;
while(s[i][g]!='\n')
{
c[i][1]=c[i][1]*10+(s[i][g]-'0');
g++;
}
num[i]=g-1;
}
else
{
int j=0;
while(s[i][j]!=' ')
{
j++;
}
for(int k=0;k<j;k++)
{
c[i][0]=c[i][0]*10+(s[i][k]-'0');
}
int g=j+1;
while(s[i][g]!='\n')
{
c[i][1]=c[i][1]*10+(s[i][g]-'0');
g++;
}
num[i]=g+1;
}
}
int i;
for( i=0;i<n-1;i++)
{
int sum;
if(b[i]=='+')
{
sum=c[i][0]+c[i][1];
}
if(b[i]=='-')
{
sum=c[i][0]-c[i][1];
}
if(b[i]=='*')
{
sum=c[i][0]*c[i][1];
}
if(b[i]=='+')
{
printf("%d+%d=%d\n",c[i][0],c[i][1],sum);
if(sum<0)
{
num[i]++;
sum=sum*(-1);
}
while(sum/10!=0)
{
num[i]++;
sum=sum/10;
}
num[i]++;
printf("%d\n",num[i]);
}
if(b[i]=='-')
{
printf("%d-%d=%d\n",c[i][0],c[i][1],sum);
if(sum<0)
{
num[i]++;
sum=sum*(-1);
}
while(sum/10!=0)
{
num[i]++;
sum=sum/10;
}
num[i]++;
printf("%d\n",num[i]);
}
if(b[i]=='*')
{
printf("%d*%d=%d\n",c[i][0],c[i][1],sum);
if(sum<0)
{
num[i]++;
sum=sum*(-1);
}
while(sum/10!=0)
{
num[i]++;
sum=sum/10;
}
num[i]++;
printf("%d\n",num[i]);
}
}
int sum;
if(b[i]=='+')
{
sum=c[i][0]+c[i][1];
}
if(b[i]=='-')
{
sum=c[i][0]-c[i][1];
}
if(b[i]=='*')
{
sum=c[i][0]*c[i][1];
}
if(b[i]=='+')
{
printf("%d+%d=%d\n",c[i][0],c[i][1],sum);
if(sum<0)
{
num[i]++;
sum=sum*(-1);
}
while(sum/10!=0)
{
num[i]++;
sum=sum/10;
}
num[i]++;
printf("%d",num[i]);
}
if(b[i]=='-')
{
printf("%d-%d=%d\n",c[i][0],c[i][1],sum);
if(sum<0)
{
num[i]++;
sum=sum*(-1);
}
while(sum/10!=0)
{
num[i]++;
sum=sum/10;
}
num[i]++;
printf("%d",num[i]);
}
if(b[i]=='*')
{
printf("%d*%d=%d\n",c[i][0],c[i][1],sum);
if(sum<0)
{
num[i]++;
sum=sum*(-1);
}
while(sum/10!=0)
{
num[i]++;
sum=sum/10;
}
num[i]++;
printf("%d",num[i]);
}
return 0;
}
by ninji @ 2023-05-22 21:48:51
#include <bits/stdc++.h>
using namespace std;
int nl(int n)
{
int x=0;
if(n<0){
x++;
n*=-1;
}
do
{
x++;
n/=10;
}while(n!=0);
return x;
}
int main(void){
int a,b,i;
char x,y[30];
cin>>i;
for(int j=1;j<=i;j++){
scanf("%s",y);
if(isalpha(y[0])){
x=y[0];
cin>>a>>b;
}
else
{
a=0;
for(int k=0;k<strlen(y);k++)
{
a=a*10+(y[k]-'0');
}
cin>>b;
}
if(x=='a')
{
printf("%d+%d=%d\n%d\n",a,b,a+b,nl(a)+nl(b)+nl(a+b)+2);
}
else if(x=='b')
{
printf("%d-%d=%d\n%d\n",a,b,a-b,nl(a)+nl(b)+nl(a-b)+2);
}
else if(x=='c')
{
printf("%d*%d=%d\n%d\n",a,b,a*b,nl(a)+nl(b)+nl(a*b)+2);
}
}
return 0;
}
这样就可以了,(你写的代码代码太长了)
by ninji @ 2023-05-22 21:49:08
@sgzdaq