#include
<
stdio.h
>
#include < string .h >
#include < stdlib.h >
int cmp( const void * a, const void * b)
{
return * ( long * )a > * ( long * )b ? 1 : - 1 ;
}
int main( )
{
char ch[ 1005 ];
while (scanf( " %s " ,ch) != EOF)
{
char * p, * q,ch1[ 1005 ];
int len,i = 0 ,k = 0 ,m = 0 ,flag = 0 ;
long A[ 1001 ];
len = strlen(ch);
memset(A, 0 , sizeof (A));
p = ch;
q = ch + len;
while ( * p == ' 0 ' )
{
p ++ ;
if ( * p == ' 5 ' )
{
A[ 0 ] = 0 ;
flag = 1 ;
}
}
m = 0 ;
if (flag)
k = 1 ;
else
k = 0 ;
while ( p < q )
{
i = 0 ;
int flag2 = 0 ;
while ( * p != ' 5 ' )
{
ch1[i ++ ] =* p;
p ++ ;
flag2 = 1 ;
}
if (flag2 == 1 )
{
ch1[i] = ' \0 ' ;
A[k ++ ] = atol(ch1);
}
while ( * p == ' 5 ' )
{
p ++ ;
while ( * p == ' 0 ' )
{
p ++ ;
if ( * p == ' 5 ' )
A[k ++ ] = 0 ;
}
}
}
qsort(A,k, sizeof (A[ 0 ]),cmp);
for (i = 0 ;i < k;i ++ )
printf(i == k - 1 ? " %ld\n " : " %ld " ,A[i]);
}
// system("pause");
return 0 ;
}
这道题目,由于没有看清题意,“可能有些整数以‘0’开头,这些头部的‘0’应该被忽略掉,除非这个整数就是由若干个‘0’组成的,这时这个整数就是0)。
”,就因为这句话浪费了我一个小时,一直wrong answer。。。。审题。。
#include < string .h >
#include < stdlib.h >
int cmp( const void * a, const void * b)
{
return * ( long * )a > * ( long * )b ? 1 : - 1 ;
}
int main( )
{
char ch[ 1005 ];
while (scanf( " %s " ,ch) != EOF)
{
char * p, * q,ch1[ 1005 ];
int len,i = 0 ,k = 0 ,m = 0 ,flag = 0 ;
long A[ 1001 ];
len = strlen(ch);
memset(A, 0 , sizeof (A));
p = ch;
q = ch + len;
while ( * p == ' 0 ' )
{
p ++ ;
if ( * p == ' 5 ' )
{
A[ 0 ] = 0 ;
flag = 1 ;
}
}
m = 0 ;
if (flag)
k = 1 ;
else
k = 0 ;
while ( p < q )
{
i = 0 ;
int flag2 = 0 ;
while ( * p != ' 5 ' )
{
ch1[i ++ ] =* p;
p ++ ;
flag2 = 1 ;
}
if (flag2 == 1 )
{
ch1[i] = ' \0 ' ;
A[k ++ ] = atol(ch1);
}
while ( * p == ' 5 ' )
{
p ++ ;
while ( * p == ' 0 ' )
{
p ++ ;
if ( * p == ' 5 ' )
A[k ++ ] = 0 ;
}
}
}
qsort(A,k, sizeof (A[ 0 ]),cmp);
for (i = 0 ;i < k;i ++ )
printf(i == k - 1 ? " %ld\n " : " %ld " ,A[i]);
}
// system("pause");
return 0 ;
}
这道题目,由于没有看清题意,“可能有些整数以‘0’开头,这些头部的‘0’应该被忽略掉,除非这个整数就是由若干个‘0’组成的,这时这个整数就是0)。
”,就因为这句话浪费了我一个小时,一直wrong answer。。。。审题。。