时间限制: 1 Sec 内存限制: 256 MB
提交: 473 解决: 81
输入
请将文本文件word.dic下载保存到当前目录下,
要求编写C程序,对word.dic中的单词排序,并将排序结果显示在屏幕上。
特别注意,排序时忽略大小写,详见样例数据。
输出
实际的测试文件word.dic不超过3000行,每行包含一个单词(或词组),
每个单词的左侧没有空格之类的多余符号,每个单词(或词组)的总长度不超过30。
样例输入
例如,word.dic的内容为: Zero one two three four five six seven eight nine ten
样例输出
eight five four nine one seven six ten three two Zero
代码错哪里了?
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
int i,j,n=0;
char str[3050][50],b[50];
FILE *fp;
if((fp=fopen("word.dic","r"))==NULL)
{
exit(0);
}
while(fgets(str[n],50,fp)!=NULL){
n++;
}
for(i=0;i<n-1;i++)
for(j=0;j<n-i-1;j++)
{
if(strlen(str[j])>strlen(str[j+1]))
{
strcpy(b,str[j]);
strcpy(str[j],str[j+1]);
strcpy(str[j+1],b);
}
}
for(i=0;i<n;i++)
{
printf("%s\n",str[i]);
}
}