求求无BUG 2021-07-15 23:40 采纳率: 100%
浏览 37
已采纳

CCFCSP 201403-2 窗口

自己测了很多样例但是只有30分 思路是否有问题 如何修改

#include<bits/stdc++.h>
using namespace std;
int main(void)
{
    int n,m;
    cin>>n>>m;
    int a[100][100];
    for(int i=1;i<=n;i++)
        for(int j=1;j<=4;j++)
        {
            cin>>a[i][j];
            a[i][5]=i; //记录窗口编号 
        }
    int num1,num2;
    while(m--)
    {
        bool flag=false;
        cin>>num1>>num2;
        for(int i=n;i>=1;i--)//从顶层窗口开始 
        {
            if(num1>=a[i][1]&&num1<=a[i][3]&&num2>=a[i][2]&&num2<=a[i][4])
            {
                cout<<a[i][5]<<endl;//输出编号 
                if(i!=n) for(int j=i;j<=n-1;j++) swap(a[j],a[j+1]);//若该窗口不在顶层,逐层移动 
                flag=true;
            }
            if(flag) break;
        }
        if(!flag) cout<<"IGNORED";//没有找到 
    }
    return 0;
}
  • 写回答

1条回答 默认 最新

  • CSDN专家-link 2021-07-16 07:21
    关注

    看代码的大概意思是有n个窗口层叠,每个窗口的x,y位置已经输入,根据输入的鼠标位置从顶层窗口判断选中哪个,并把该窗口置为顶层窗口。具体得分为啥不高,还要看你这个作业的具体要求来判断。
    比如窗口输入的x,y值你并没有检查a[i][1]必需小于a[i][3]
    swap(a[j],a[j+1])也有问题啊,a是二维数组,你这个swap是自己写的么
    我觉得你这个定义a[100][100]并不是很合适的数据结构,应该类似:
    struct _WINS
    {
    int left;
    int top;
    int right;
    int bottom;
    int winId;
    }WINS[100];

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已采纳回答 7月16日
  • 创建了问题 7月15日

悬赏问题

  • ¥170 如图所示配置eNSP
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改
  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥15 键盘指令混乱情况下的启动盘系统重装