题目的意思就是按顺序输出一段字符串中,没有重复的单词,基本思路就是读取字符串到数组中,要是读取到相同的就舍弃,最后排序输出。
然后排序的时候遇到了问题,冒泡排序法的结果是runtime,也就是说必须换一种排序方法
qsort()函数的用法 ,qsort包含4个参数,第一个是表示排序数组的首地址,第二个是表示排序数组的里面元素的个数,第三个是表示排序数组中单个元素的大小,
第四个是指针,用于确定排序的顺序。返回值<0,n1将被排在n2前面,=0不变, >0将被排在n2后面,头文件要加# include <stdlib.h>
qsort(word,num+1,205,cmp);
int cmp(const void* _a, const void* _b)
{
char *a = (char*)_a;
char *b = (char*)_b;
return strcmp(a, b);
#include<stdio.h> #include<string.h> #include<ctype.h> #include<stdlib.h> int cmp(const void* _a, const void* _b) { char *a = (char*)_a; char *b = (char*)_b; return strcmp(a, b); } char word[50005][205]; int main() { char c,tmp[205]; int i=0,j=0; while((c=getchar())!=EOF) { if(!isalpha(c)) { if(j>0) { tmp[j]='\0'; strcpy(word[i],tmp); i++; } j=0; } else { tmp[j]=tolower(c); j++; } } int num=i-1; qsort(word,num+1,205,cmp); for(i=0;i<=num;i++) { if(strcmp(word[i],word[i+1])==0) continue; puts(word[i]); } return 0; }