도저히 왜 틀렸는지 몰라서 소스올립니다.
#include <stdio.h>#include <stdlib.h>#include <string.h>
int cmp( const void *a, const void *b ){ int len = (int)strlen((char*)a) - (int)strlen((char*)b); if ( len < 0 ){ return -1; } else if ( len == 0 ) if ( strcmp( (char*)a , (char*)b ) == 1 ) return 1;}
char arr[20100][51];
int main(){ int n;
scanf("%d", &n);
for ( int i = 0; i < n; i++ ) scanf("%s", arr[i] );
qsort( arr, n, sizeof(char[51]), cmp ); for ( int i = 0; i < n; i++ ) if ( strcmp( arr[i], arr[i+1] ) == 0 && i < n ) continue; else printf("%s\n", arr[i] );
}
if ( strcmp( arr[i], arr[i+1] ) == 0 && i < n )를
if ( i+1 < n && strcmp( arr[i], arr[i+1] ) == 0 )로 바꿔보세요.
틀렷다네요ㅠ
댓글을 작성하려면 로그인해야 합니다.
kimchangyoung 9년 전
도저히 왜 틀렸는지 몰라서 소스올립니다.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int cmp( const void *a, const void *b )
{
int len = (int)strlen((char*)a) - (int)strlen((char*)b);
if ( len < 0 ){
return -1;
}
else if ( len == 0 )
if ( strcmp( (char*)a , (char*)b ) == 1 )
return 1;
}
char arr[20100][51];
int main()
{
int n;
scanf("%d", &n);
for ( int i = 0; i < n; i++ )
scanf("%s", arr[i] );
qsort( arr, n, sizeof(char[51]), cmp );
for ( int i = 0; i < n; i++ )
if ( strcmp( arr[i], arr[i+1] ) == 0 && i < n )
continue;
else
printf("%s\n", arr[i] );
}