求助,可以题目给的样例,但是测试样例全红。。
查看原帖
求助,可以题目给的样例,但是测试样例全红。。
1136890
Addams楼主2023/11/21 13:23
#include <stdio.h>
#include <math.h>
int len(int x);

int main(void)
{
    int i, j, k, ans[100], x[100]={0}, y[100]={0}, flag, length[50]={0};
    char ch[100][100]={'\0'};

    scanf("%d", &i);
    getchar();
    for(j=0; j<i; j++)
    {
        for (k = 0; (ch[j][k] = getchar())!='\n'; k++)
        {}
    }
    for(j=0; j<i; j++)
    {
        if(ch[j][0]=='a' || ch[j][0]=='b' || ch[j][0]=='c')
        {
            flag = 0;
            k = 2;
        }   
        else
        {
            flag = 1;
            k = 0;
        }
        for ( ; ch[j][k]!=' '; k++)
        {
            x[j] = x[j] * 10 + (ch[j][k]-'0');
        }
        for (k+=1; ch[j][k] !='\n'; k++)
        {
            y[j] = y[j] * 10 + (ch[j][k] - '0');
        }
        if (flag)
            ch[j][0] = ch[j-1][0];
        switch(ch[j][0])
        {
            case 'a':
            case '+':
                ch[j][0] = '+';
                ans[j] = x[j] + y[j];
                break;
            case 'b':
            case '-':
                ch[j][0] = '-';
                ans[j] = x[j] - y[j];
                break;
            case 'c':
            case '*':
                ch[j][0] = '*';
                ans[j] = x[j] * y[j];
                break;
        }
    }
    for(j=0; j<i; j++)
    {
        length[j] = 2 + len(x[j]) + len(y[j]) + len(ans[j]);
        if (ans[j] < 0)
            length[j] += 1;
        printf("%d%c%d=%d\n", x[j], ch[j][0], y[j], ans[j]);
        printf("%d\n", length[j]);
    }
  
    return 0; 
}

int len(int x)
{
    if(fabs(x)>=10)
        return 1+len(x/10);
    else
        return 1;
}
2023/11/21 13:23
加载中...