UVA在线判断问题-如何解决问题688的运行时错误

时间:2019-06-02 09:09:54

标签: c++ runtime-error uva

我目前正在尝试解决UVA在线法官网站的问题688。我写了一个可以在我的平台上运行的代码,但该代码在网站上返回了运行时错误。我该如何解决?

我尝试将向量和new int都用于数组,因为这是我能想到的唯一可能的问题,但它们都不起作用。

#include <bits/stdc++.h>
using namespace std;
int main()
{
    int n, i, j, k, t=0, m=0;
    float x, y, r;
    int *a = new int[1000000]; 
    while(cin>>n, n>0)
    {
        t=0;
        for(i=0; i<n; i++)
        {
            cin>>x>>y>>r;
            x*=10;
            y*=10;
            r*=10;
            for(j=x-r; j<x+r; j++)
            {
                for(k=y-r; k<y+r; k++)
                {
                    if(a[j*1000+k]<=m)
                    {
                        a[j*1000+k]=m+1;
                        t++;
                    }
                }
            }
        }
        cout<<++m<<" ";
        cout<<setprecision(2)<<fixed;
        cout<<(float)t/100<<endl;
    }
    delete[] a;
    return 0;
}

问题是要计算可能重叠或不重叠的几个正方形所覆盖的总面积。我使用一个新的int系统为1000000个区域创建一个数组(这是问题的要求)。当我在自己的计算机上将0作为测试用例(如问题所述)输入时,它会提供正确的答案并停止,但在网站上会变成运行时错误。

1 个答案:

答案 0 :(得分:0)

运行时错误主要是因为变量的数据类型及其用途。您正在为echo $obj->name; echo $arr['name']; 分配一些float变量并对其进行一些操作

  

此外,您应该考虑在需要时声明变量。