代码如下:
#include <ctype.h>
int nl(int n){
int x=0;
do{
x++;
n/=10;
}while(n!=0);
return x;
}
int main(void){
int a,b,i;
char x,y;
scanf("%d",&i);
for(int j=1;j<=i;j++){
scanf("%c",&y);
if(isalpha(y)){
x=y;
scanf("%d %d",&a,&b);
}
else{
a=y*1;
scanf("%d",&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;
}
(用DEV C++测试的时候发现第二行第一个一不管输入是不是字母,它都会执行else部分,这是为什么?)