这是ccf2020年的一道题线性分类器,题目是图片我放不上来,等一下我看能不能放在评论区,我用数组存放的数据,一位博主是用结构体存放的数据,我想知道为什么我的运行结果不对,希望能帮忙修改一下。

这是ccf2020年的线性分类器,题目是图片我放不上来,等一下我看能不能放在评论区,我用数组存放的数据,一位博主是用结构体存放的数据,我想知道为什么我的运行结果不对,希望能帮忙修改一下。
题目
我的代码

#include
int main()
{
    int n,m,i,j,a1,a2,a3,sum1,sum2,sum3,sum4,temp;
    int arr1[1010][2];
    char arr2[1010][1];
    scanf("%d %d",&n,&m);
    for(i=0;i"%d%d%c%c",&arr1[i][0],&arr1[i][1],&arr2[i][0],&arr2[i][0]);
    }
    for(j=0;j"%d %d %d",&a1,&a2,&a3);
        sum1=sum2=sum3=sum4=0;
        for(i=0;i0]*a2+arr1[i][1]*a3;
            if(arr2[i][0]=='A')
            {
                if(temp>0)
                sum1++;
                if(temp<0)
                sum2++;
            }
            if(arr2[i][0]=='B')
            {
                if(temp>0)
                sum3++;
                if(temp<0)
                sum4++;
            }
        }
        if(sum1+sum4==n||sum2+sum3==n)
        printf("Yes\n");
        else
        printf("No\n");
    }
    return 0;
 } 

竹春九月博主的代码

#include
struct Node{
    int x,y;
    char z;
};
int main()
{
    int n,m,i,j,a,b,c,temp;
    int A1,A0,B1,B0;
    scanf("%d%d",&n,&m);
    struct Node s[n];
    for(i=0;iscanf("%d%d%c%c",&s[i].x,&s[i].y,&s[i].z,&s[i].z);//注意输入有个空格字符
    for(i=0;iscanf("%d%d%d",&a,&b,&c);//读取每条线的a,b,c
        A1=0;A0=0;B1=0;B0=0;
        for(j=0;jif(temp>0&&s[j].z=='A') A1++;
            if(temp<0&&s[j].z=='A') A0++;
            if(temp>0&&s[j].z=='B') B1++;
            if(temp<0&&s[j].z=='B') B0++;
        }
        if(A1+B0==n||A0+B1==n) printf("Yes\n");
        else printf("No\n");
    }
    return 0;
}

版权声明:本文为CSDN博主「竹春九月」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_46177519/article/details/115212682

第10行: scanf("%d%d%c%c",&arr1[i][0],&arr1[i][1],&arr2[i][0],&arr2[i][0]); &arr2[i][0],同一数组位读入了两次?
应该是:scanf("%d%d %c",&arr1[i][0],&arr1[i][1],&arr2[i][0]);