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

为什么,WA,请高手帮助啊

Posted by frankzhou at 2006-05-01 10:15:10 on Problem 2611
#include<iostream>
#include<cstring>
using namespace std;
int main()
{char digit[32];
 char temp,min;
 int i,t,j,len;
 bool flag;
 
 
 while(scanf("%s",digit) && digit[0]!='.')
 { flag = true;
     len= strlen(digit);
   if( digit[len-1]  == '2' ) {
	  digit[len-1] = '5';
	  flag = false;
   }
   else if ( digit[len-1] == '6' ){ 
		    digit[len-1] = '9';
			flag=false;
			}
	 else {
		 digit[len-2] = digit[len-1];
		 t = len-2;
		 i=t-1;
		   while(i>=0  && digit[i] >= digit[i+1] && digit[i] != '2' && digit[i] !='6'  ) {
			 i--;
		   }
		     if(i<0) flag = true;
		 
		      else if ( digit[i]<digit[i+1])
			  {if (digit[i]== '2'&& digit[i+1]>'5') 
		        { digit[i] = '5';
		          flag=false;
			  }
			  else {flag=false;
		        min=i+1;
            
		           for( j= i+1 ; j<= len-2 ; j++ )
					   if(digit[j]>digit[i] &&digit[min]> digit[j] ) min = j;
					   if( digit[min] == '9' && digit[i] <'6')  digit[min] = '6';
					   if( digit[min] == '5' && digit[i] <'2' ) digit[min]= '2';
					temp=digit[min];   
		       digit[min] = digit[i];
			   digit[i] = temp;
			  }
			  }
		 
			  else if (digit[i] == '2' )
			  {digit[i] = '5'; 
		       flag=false;
			  }
		     else if (digit[i] == '6')
			 {digit[i] = '9'; flag=false;}
	for ( j = i+1 ;j<=len -2; j++ ) 
		        if ( digit[j] == '5' )
			        digit[j] = '2';
		         else if ( digit[j] == '9' ) 
			          digit[j]= '6';
		        for(i = i+1 ;i < len-2 ; i++  )
                 for( j = i+1 ; j<= len-2 ; j++ )
				 if( digit[i] > digit[j] )
				 { temp = digit[i];
				 digit[i]= digit[j];
				 digit[j] = temp;	
				 }
 digit[len-1] = digit[len-2];
 digit[len-2] = '.';
	 }
     

		
	
	 

 if (flag ) cout<<"The price cannot be raised."<<endl;
   else    cout<< digit <<endl;
 len=strlen(digit);
 }

	 
return 0;
}

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