woritage @ 2024-12-19 21:40:03
#include <string.h>
#include <stdlib.h>
typedef struct
{
char op;
int num1;
int num2;
}cal;
int leng (int n);
int main()
{
int i;
scanf ("%d",&i);
getchar();
cal exa[51];
int result;
for (int r=0; r<i; r++)
{
char str[3][6];
for (int j=0; j<3; j++)
{
scanf ("%s",str[j]);
if (j==0&&(str[j][0]<'a'||str[j][0]>'c'))
{
j+=1;
}
}
if (str[0][0]>='a'&&str[0][0]<='c')
{
exa[r].op=str[0][0];
exa[r].num1=atoi(str[1]);
exa[r].num2=atoi(str[2]);
}
else
{
exa[r].op=exa[r-1].op;
exa[r].num1=atoi(str[0]);
exa[r].num2=atoi(str[2]);
}
}
for (int r=0; r<i; r++)
{
switch (exa[r].op)
{
case'a':
result=exa[r].num1+exa[r].num2;
printf ("%d+%d=%d",exa[r].num1, exa[r].num2,result);
break;
case'b':
result=exa[r].num1-exa[r].num2;
printf ("%d-%d=%d",exa[r].num1, exa[r].num2,result);
break;
case'c':
result=exa[r].num1*exa[r].num2;
printf ("%d*%d=%d",exa[r].num1, exa[r].num2,result);
break;
}
printf ("%d\n",leng(exa[r].num1)+leng(exa[r].num2)+leng(result));
}
}
int leng (int n)
{
int i=0;
while (n>0)
{
n/=10;
i++;
}
return i;
}```
by ruo_aqueous @ 2024-12-19 21:45:51
@woritage
他不是要换行并输出表达式长度马
by woritage @ 2024-12-23 12:22:57
@ruo_aqueous换行了也是全wa欸
by woritage @ 2024-12-23 12:32:11
@ruo_aqueous 原来我没有处理负数,现在通过了,谢谢
by ruo_aqueous @ 2024-12-23 14:35:08
@woritage
求关