瑶一瑶摇一摇 2022-08-25 10:40 采纳率: 50%
浏览 23

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

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

#include<stdio.h>
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<n;i++)
    {
        scanf("%d%d%c%c",&arr1[i][0],&arr1[i][1],&arr2[i][0],&arr2[i][0]);
    }
    for(j=0;j<m;j++)
    {
        scanf("%d %d %d",&a1,&a2,&a3);
        sum1=sum2=sum3=sum4=0;
        for(i=0;i<n;i++)
        {
            temp=a1+arr1[i][0]*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<stdio.h>
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;i<n;i++) scanf("%d%d%c%c",&s[i].x,&s[i].y,&s[i].z,&s[i].z);//注意输入有个空格字符
    for(i=0;i<m;i++){
        scanf("%d%d%d",&a,&b,&c);//读取每条线的a,b,c
        A1=0;A0=0;B1=0;B0=0;
        for(j=0;j<n;j++){
            temp=a+b*s[j].x+c*s[j].y;
            if(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

  • 写回答

1条回答 默认 最新

  • qzjhjxj 2022-08-25 11:22
    关注

    第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]);

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 8月25日

悬赏问题

  • ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
  • ¥15 安装quartus II18.1时弹出此error,怎么解决?
  • ¥15 keil官网下载psn序列号在哪
  • ¥15 想用adb命令做一个通话软件,播放录音
  • ¥30 Pytorch深度学习服务器跑不通问题解决?
  • ¥15 部分客户订单定位有误的问题
  • ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
  • ¥15 Bug traq 数据包 大概什么价
  • ¥15 在anaconda上pytorch和paddle paddle下载报错
  • ¥25 自动填写QQ腾讯文档收集表