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 Ivy2007 at 2007-07-19 14:00:37 on Problem 1715
小女子比较苯,只好用苯的方法来做了! 请大家帮忙看看!!不胜感激!代码如下:

#include<stdio.h>
#include<string.h>
void sort(char str[],int n)      
{      
  int i;      
  char temp;      
  for(i=0;i<=(n-1)/2;i++)      
    {      
         temp=str[i];      
         str[i]=str[n-i-1];      
         str[n-i-1]=temp;      
    }             
   return;         
}     
int main()
{
    int m,n,i,j,t;
  char a[]="FEDCBA98",b[9],c[9]; 
      m=strlen(a); 
      sort(a,m);
while(EOF!=scanf("%s",b))
{   
     n=strlen(b);
     sort(b,n);
     if(m>n)
     for(i=n;i<m;i++)
     b[i]='0';
   else   if(m==n&&strcmp(a,b)==0)
             {
             printf("0");
            printf("\n");
            }
          else if(m==n&&strcmp(a,b)< 0) break;
   else if(m<n) break;
    for(i=0;i<8;i++)
     {
            if(a[i]>b[i])
                {
                   if(a[i]>=65&&b[i]>=65)
                     c[i]=a[i]-b[i]+'0';
                   if(a[i]>=65&&b[i]<65)
                     {
                       t=a[i]-'A'+10-(b[i]-'0');
                        if (t>=10)
                           c[i]=t-10+'A';
                          else c[i]=t+'0';
                          }
                     if(a[i]<65&&b[i]<65)
                       c[i]=a[i]-b[i]+'0';
                }
       else if(a[i]<b[i])
                {  
                    a[i+1]-=1;
                    if(a[i]>=64&&b[i]>=65)
                    { 
                        t=16+a[i]-b[i];
                       if(t>=10)
                       c[i]=t-10+'A';
                      else c[i]=t+'0';
                     }
           
                    if(a[i]<64&&b[i]>=65)
                    {
                      t=16+a[i]-'0'-(b[i]-'A'+10);
                      if(t>=10)
                      c[i]=t-10+'A';
                      else c[i]=t+'0';
                   }
                   if(a[i]<64&&b[i]<65)
                      { 
                        t=16+a[i]-b[i];
                        if(t>=10)
                         c[i]=t-10+'A';
                        else c[i]=t+'0';
                        }
                   }
              else c[i]='0';    
            }        
  sort(c,8);
 for(i=0;i<8;i++)
   if(c[i]!='0')break;
      for(j=i;j<8;j++) 
        printf("%c",c[j]);
       printf("\n");


}
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