社区讨论

本地没问题,提交全wa,且都提示我输出第一个元素为’-‘

P1957口算练习题参与者 3已保存回复 3

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
3 条
当前快照
1 份
快照标识符
@lo36nhdd
此快照首次捕获于
2023/10/24 01:39
2 年前
此快照最后确认于
2023/10/24 01:39
2 年前
查看原帖
C
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int n,a[100][3]={0},b[100][3],w[5]={0};
    char f,f2,f3;
    scanf("%d",&n);
    getchar();
    for(int i=0;i<n;i++)
    {
        if((f=getchar())>='a')
        {
            f2=f;
            scanf("%d%d",&a[i][0],&a[i][1]);
        }
        else
        {
            scanf("%d%d",&a[i][0],&a[i][1]);
            int temp=a[i][0];
            while(a[i][0]/10!=0)
            {
                w[1]=1;
                a[i][0]/=10;
                w[1]++;
            }
            a[i][0]=temp+pow(10,w[1])*(f-'2'+2);
        }
        getchar();
        switch(f2)
        {
            case 'a':{f3='+';a[i][2]=a[i][0]+a[i][1];}break;
            case 'b':{f3='-';a[i][2]=a[i][0]-a[i][1];}break;
            case 'c':{f3='*';a[i][2]=a[i][0]*a[i][1];}break;
        }
        b[i][0]=a[i][0];
        b[i][1]=a[i][1];
        b[i][2]=a[i][2];
        for(int j=0;j<3;j++)
        {
            w[0]=1;
            while(b[i][j]/10!=0)
            {
                b[i][j]/=10;
                w[0]++;
            }
            w[j+1]=w[0];
        }
        w[4]=w[1]+w[2]+w[3];
        if(a[i][2]<0)
        {
            w[4]++;
        }
        printf("%d%c%d=%d\n%d\n",a[i][0],f3,a[i][1],a[i][2],2+w[4]);
    }
    return 0;
}

回复

3 条回复,欢迎继续交流。

正在加载回复...