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] );

}

f52985   9년 전

if ( strcmp( arr[i], arr[i+1] ) == 0 && i < n )를

if ( i+1 < n && strcmp( arr[i], arr[i+1] ) == 0 )로 바꿔보세요.

kimchangyoung   9년 전

틀렷다네요ㅠ

댓글을 작성하려면 로그인해야 합니다.