求大佬解惑,全WA,但是本地devc++跑样例和第一个WA都一样
查看原帖
求大佬解惑,全WA,但是本地devc++跑样例和第一个WA都一样
1420051
hehebe楼主2024/11/23 23:11
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int change(char str[]){
	char *p;
	int l,n=0;
	p=str;
	l=strlen(str);
	while(*p!='\0'){
		switch(*p){
			case '0':n=n*10+0;break;
			case '1':n=n*10+1;break;
			case '2':n=n*10+2;break;
			case '3':n=n*10+3;break;
			case '4':n=n*10+4;break;
			case '5':n=n*10+5;break;
			case '6':n=n*10+6;break;
			case '7':n=n*10+7;break;
			case '8':n=n*10+8;break;
			case '9':n=n*10+9;break;
		}
		p++;
	}
	return n;
}
int length(int k){
	int i;
	for(k;k>0;k=k/10){
		i++;
	}
	return i;
}
int main(){
	char st1[6],st2[6];
	int flag,n,i,j,k,len;
	scanf("%d",&n);
	for(n;n>0;n--){
		scanf("%s",st1);
		if(st1[0]=='a'){
			flag=1;
			scanf("%s %s",st1,st2);
		}else
		if(st1[0]=='b'){
			flag=2;
			scanf("%s %s",st1,st2);
		}else
		if(st1[0]=='c'){
			flag=3;
			scanf("%s %s",st1,st2);
		}else
		scanf("%s",st2);
		i=change(st1);
		j=change(st2);
		if(flag==1){
			k=i+j;
			len=length(k)+strlen(st1)+strlen(st2)+2;
			printf("%d+%d=%d\n%d",i,j,k,len);
		}else
		if(flag==2){
			k=i-j;
			if(k>0){
				len=length(k)+strlen(st1)+strlen(st2)+2;
				printf("%d-%d=%d\n%d",i,j,k,len);
			}else{
				k=abs(k);
				len=length(k)+strlen(st1)+strlen(st2)+3;
				printf("%d-%d=-%d\n%d",i,j,k,len);
			}
		}
		if(flag==3){
			k=i*j;
			len=length(k)+strlen(st1)+strlen(st2)+2;
			printf("%d*%d=%d\n%d",i,j,k,len);
		}
		if(n>1){
		printf("\n");
		}
	}
	return 0;
}
2024/11/23 23:11
加载中...