Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
Re:break导致Runtime ErrorIn Reply To:break导致Runtime Error Posted by:HuaSir at 2018-10-10 09:28:42 > 代码片段: > for (int i = 0; i < n; ++i) > { > double x, y; > cin>>x>>y; > if (y > d){ > ans = -1; > break;//导致Runtime Error > } > offset = sqrt(d*d - y*y); > range[i].l = x - offset; > range[i].r = x + offset; > } > 输入时若发现某小岛y值大于雷达范围就break,输出-1,但这样却会导致Runtime Error,不知为何,哪位大佬能解答一下? > 整体代码: > #include <iostream> > #include <stdio.h> > #include <algorithm> > #include <cmath> > using namespace std; > > struct ran{ > double l; > double r; > }range[1000]; > > int cmp(const void *a, const void *b){ > return ((*(ran *)a).l > (*(ran *)b).l)?1:-1; > } > > int main() > { > double offset, a, d; > int t=1; > int ans, n; > while (cin>>n>>d && n && d){ > ans = 1; > for (int i = 0; i < n; ++i) > { > double x, y; > cin>>x>>y; > if (y > d){ > ans = -1; > //break;//导致Runtime Error > } > offset = sqrt(d*d - y*y); > range[i].l = x - offset; > range[i].r = x + offset; > } > if (ans != -1){ > qsort(range, n, sizeof(range[0]), cmp); > a = range[0].r; > for (int i = 1; i < n; ++i) > { > if (range[i].l > a){ > a = range[i].r; > ans++; > }else if (range[i].r < a){ > a = range[i].r; > } > } > } > printf("Case %d: %d\n", t++, ans); > } > return 0; > } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator