Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

A多次和WA多次终于找到差别,int i在里面还是外面,求解释

Posted by love_mely at 2012-12-20 07:51:13 on Problem 1328
下面这个代码是A的:

#include<iostream>  
#include<math.h>  
using namespace std;    
int main(void)  
{  
    int i,j;
    double x,y; 
	double left[1000],right[1000];  
    double n,d;  
    while(true)  
    {  
        cin>>n>>d;
		if(n==0 && d==0)
			break; 
  
        static int count=1;  

        bool flag=true;  
        for(i=0;i<n;i++)  
        {  
            cin>>x>>y;  
			left[i]=x-sqrt(d*d-y*y);  
            right[i]=x+sqrt(d*d-y*y);  
            if(y>d)  
				flag=false;  
        }  
        if(flag==false)  
        {  
            cout<<"Case "<<count++<<": -1"<<endl;  
            continue;  
        }  
        double temp;  
        for(i=0;i<n;i++)
			for(j=i;j<n;j++)
				if(right[i] > right[j])
				{
					temp=right[i];
					right[i]=right[j];
					right[j]=temp;
					temp=left[i];
					left[i]=left[j];
					left[j]=temp;
				} 
    
		int radar=1;
		for(i=0,temp=right[0];i<n-1;i++)
		{
			if(left[i+1] > temp)//need another dar and it should install at right[i+1]
			{
				radar++;
				temp=right[i+1];
			}
			else if(right[i+1] < temp)  //NO. i+1 island has narrow scope so the dar should install right[i+1]
                temp=right[i+1]; 
		}
        cout<<"Case "<<count++<<": "<<radar<<endl;  
    }  
    return 0;  
}

如果去掉开始的int i,j; 而在每次for循环的时候for(int i=...)
这样就WA,请问这是为什么呢?

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator