C语言洛谷P1957口算练习题
#include <stdio.h>
#include<string.h>
#include "math.h"
#include<stdlib.h>
int main()
{
char s[10],t;
int a,b,c=0;
int n,i,m,j,q,r,p;
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%s",s);
m=strlen(s);
if(m>1){
scanf("%d",&a);
c=0;
for(j=0;j<m;j++){
r=j;
q=1;
while(r<m-1){
q*=10;
r++;
}
c+=(s[j]-48)*q;
}
b=a;
a=c;
if(t==97){
printf("%d+%d=%d\n",a,b,a+b);
p=a+b;
}
if(t==98){
printf("%d-%d=%d\n",a,b,a-b);
p=a-b;
}
if(t==99){
p=a*b;
printf("%d*%d=%d\n",a,b,a*b);
}
printf("%d\n",chang(a,b,p));
}
if(m==1){
scanf("%d %d",&a,&b);
if(s[0]==97){
printf("%d+%d=%d\n",a,b,a+b);
p=a+b;
}
if(s[0]==98){
printf("%d-%d=%d\n",a,b,a-b);
p=a-b;
}
if(s[0]==99){
p=a*b;
printf("%d*%d=%d\n",a,b,a*b);
}
t=s[0];
printf("%d\n",chang(a,b,p));
}
}
return 0;
}
int chang(int a,int b,int p){
int cnt=0;
if(a==0){
cnt++;
}
else {
while(a>0){
a/=10;
cnt++;
}
}
if(b==0){
cnt++;
}else {
while(b>0){
b/=10;
cnt++;
}
}
if(p<0){
p=-p;
cnt++;
}
if(p==0){
cnt++;
}
else {
while(p>0){
p/=10;
cnt++;
}
}
return cnt+2;
}