uva 10815

来源:互联网 发布:sniffer捕获别人的数据 编辑:程序博客网 时间:2024/05/29 03:10
#include <stdio.h>#include <string.h>#include <stdlib.h>#include <ctype.h>char words[5000][500];char output[5000][500];char temp[500];int a, time;void deal( ){int i, j, start, flag;a = 0; start = 0;for( i = 0; i < time; i++ ){if( words[i][0] == '\n' )continue;for( j = 0; j < 300; j++ ){if( isalpha( words[i][j]) ){flag = 1;temp[start++] = tolower( words[i][j] );temp[start] = '\0';}else{if( flag ){strcpy( output[a++], temp );flag = 0;}start = 0;}if( words[i][j] == '\0' ){if(  flag  ){strcpy( output[a++], temp );flag = 0;start = 0;}break;}}}};int cmp( const void *s1, const void *s2 ){return strcmp( (char*)s1, (char*)s2 );};int main(){int i; char temp[500];time = 0;i = 0;while( fgets(words[i++], 500, stdin)  ){time++;};deal(  );qsort( output, a, sizeof(output[0]), cmp );for ( i = 0; i < a; i++ ){if( strcmp(output[i],output[i+1]) != 0 ) puts( output[i] );  }return 0;}

上面这是不ac 的代码,  我写的排序绝对是没有问题,不知道为什么这道题 用fgets读取就会WA 求大神指教,下面这个getchar就ac了

#include<stdio.h>#include<string.h>#include<stdlib.h>#include<ctype.h>char word[100010][50] = {'\0'};int cmp( const void *s1, const void *s2 )  {          return strcmp( (char*)s1, (char*)s2 );  };  int main(){    char ch;    int n = 0, len = 0;    while( 1)    {        if( (ch = getchar()) == EOF) break;        if( isalpha( ch) )            word[n][len ++] = tolower(ch);        else            if( isalpha( word[n][0])) {                word[n ++][len] = '\0';                len = 0;            }    }    qsort( word, n, sizeof (word[0]), cmp);    for( int i = 0; i < n; i ++)        if( strcmp( word[i], word[i + 1]))            printf( "%s\n", word[i]);    return 0;}


原创粉丝点击