求求无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日

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog