| ||||||||||
| 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:好奇怪的问题啊,就换一个变量就过了,各位高手 ,谁能解释一下In Reply To:好奇怪的问题啊,就换一个变量就过了,各位高手 ,谁能解释一下 Posted by:anonym11 at 2004-11-01 20:01:47 > 以下是错误程序 ,注意看划线部分
> #include<stdio.h>
> #include<stdlib.h>
>
> int cmp ( const void *a ,const void *b )
> {
> int *m = (int *)a, *n = (int *)b ;
> if ( *m > *n )
> return 1 ;
> else
> if ( *m == *n )
> return 0 ;
> else
> if ( *m < *n )
> return -1;
> else
> return 0;
> }
>
> int main ()
> {
> int d[26] = { 2,2,2,3,3,3,4,4,4,5,5,5,6,6,6,7,7,7,7,8,8,8,9,9,9,9 };
> int i , j , k, n ;
> int s[10000] ,tt ;
> int no[110000]={0} ;
> char temp[500] ;
> scanf ( "%d",&n ) ;getchar ();
> for ( i = 0 ;i < n ;i ++ )
> {
> gets ( temp );
> for ( j = 0 ; temp[j] ;j ++ )
> {
> if ( temp[j] >= '0' && temp[j] <= '9' )
> no[i] = no[i] * 10 + temp[j] - '0' ;
> if ( temp[j] >= 'A' && temp[j] <= 'Z' )
> no[i] = no[i] * 10 + d[temp[j] - 'A'] ;
> }
> }
>
> qsort ( no, n, sizeof ( int ), cmp ) ;
> /////////////////////////////////////////////////////
> for ( k = i = 0 ; i < n ;) //s[k] 是号码重复次数
> {
> s[k] = 1 ;
> ~~~~~~~~~~~~~
> for ( j = i + 1;j < n && no[j] == no[i] ;j ++ )
> s[k] ++ ;
> if ( s[k] > 1 )
> {
> tt = no[i] / 10000 ;
> printf ( "%03d-%04d %d\n",tt ,no[i] % 10000,s[k] );
> k ++ ;
> ~~~~~~~~~
> }
> i = j ;
> }
> if ( k == 0 )
> printf ( "No duplicates.\n" ) ;
> return 0;
> }
> //////////////////////////////////////
> 将斜线部分改为以下代码,AC
> mark = 1 ;
> for ( i = 0 ; i < n ;)
> {
> count = 1 ;
> for ( j = i + 1;j < n && no[j] == no[i] ;j ++ )
> count ++ ;
> if ( count > 1 )
> {
> mark = 0 ;
> tt = no[i] / 10000 ;
> printf ( "%03d-%04d %d\n",tt ,no[i] % 10000,count );
> }
> i = j ;
> }
> if ( mark )
> printf ( "No duplicates.\n" ) ;
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator