关于第一个测试点:我输出的明明是9,为什么说我输出的是5???
查看原帖
关于第一个测试点:我输出的明明是9,为什么说我输出的是5???
769492
ksf130020楼主2022/9/23 17:21

本地测试:(下载第一个测试点的数据)

输入:

1

a 99 999

输出:

99+999=1089

然而

Wrong Answer.worng answer On line 1 column 6,read 5,except 9.

明明样例全对,提交后全部WA,QWQ

#include<stdio.h>
#include<string.h>

int len(int n)
{
    int x=1;
    
    if(n<0)
    {
        n=-n;
        while(n!=0)
        {
            n/=10;
            x++;
        }
    }
    
    if(n>0)
    {
        x--;
        while(n!=0)
        {
            n/=10;
            x++;
        }
	}
    return x;
}

int main()
{
    int i,j,k;
    int e=0,f=0,l,ln;
    int p;
    char n[51][18];
    scanf("%d",&i);
    for(j=0;j<=i;j++)
    {
        gets(n[j]);
    }
    for(j=1;j<=i;j++)
    {
        l=strlen(n[j]);
        k=0;
        e=0,f=0;
            if(n[j][k]=='a') {p=1;k+=2;}
            if(n[j][k]=='b') {p=2;k+=2;}
            if(n[j][k]=='c') {p=3;k+=2;}
            while(n[j][k]!=' '&&n[j][k]!='\0')
            {
                e=e*10+(n[j][k]-48);
                k++;
            }
            k++;
            while(k<l)
            {
                f=f*10+(n[j][k]-48);
                k++;
            }
            switch(p)
            {
                case 1:{ln=len(e)+len(f)+len(e+f)+2;printf("%d+%d=%d\n%d\n",e,f,e+f,ln);break;}
                case 2:{ln=len(e)+len(f)+len(e-f)+2;printf("%d-%d=%d\n%d\n",e,f,e-f,ln);break;}
                case 3:{ln=len(e)+len(f)+len(e*f)+2;printf("%d*%d=%d\n%d\n",e,f,e*f,ln);}
            }
    }
    return 0;
}
2022/9/23 17:21
加载中...