编写程序对用户输入的一系列单词排序

假设每个单词不超过20个字符,当用户输入空单词(即敲回车键而没有录入任何单词)时停止读取,把每个单词存储在一个动态分配的字符串中,用一个指针数组来跟踪这些字符串,读完所有单词后对数组排序。
我试着编了一个没用动态分配的程序,但问题有点多,希望会的大佬帮忙改改或者帮忙写一个供我参考一下,谢谢
#include
#include
#include
#define M 50
#define N 20
int read_line(char str[],int n)
{
int ch,i=0;
while((ch=getchar())!='\n'){
while(ch==' ')ch=getchar();
if(i<n&&ch!='\n')
str[i++]=ch;
}
str[i]='\0';
return i;
}
void quicksort(char *str[],int n)
{
int i=1,t;
char max[N];
strcpy(max,str[0]);
if(n<=1)return;
for(;i<n;i++){
if(strcmp(str[i],max)){
strcpy(max,str[i]);
t=i;
}
if(strcmp(str[i],max)==0)
t=0;
}
strcpy(str[t],str[n-1]);
strcpy(str[n-1],max);
quicksort(str,n-1);
}
int main(void)
{
int i,n=0;
char *str[N];
for(i=0;n<M;i++,n++)
{printf("Enter word:");
if(read_line(str[n],N)==0)
break;
}
quicksort(str,n);
for(i=0;i<n;i++)
printf("%s",str[i]);
return 0;
}

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!

相似问题

10
c语言编写一个程序,根据用户输入英文名和姓先显示姓氏,其后跟一个逗号,然后显示名的首字母
6
有没有可以编写这种程序(脚本)的语言——在某个网站的输入框中输入信息,然后点击搜索
2
求一用数据结构c++编写的纸牌游戏程序
6
如何使用javascript编写一个加法程序,从文本框输入两个数字,用alert输出结果?
3
编写一个程序,开启3个线程,这3个线程的ID分别是A,B,C
4
我在Windows下用VS2013编写的程序如何能在Linux上也能运行?
2
还是一道编写程序的题目
2
JAVA编写一个程序,可以接收用户从键盘输入任意汉字,然后输出该汉字对应的Unicode编码?
2
从键盘输入正整数m和n,编写程序求m~n之间的全部素数,并输出素数的个数,要求每行输出10个数据
1
基于51单片机的信号发生器程序编写
1
如何用c语言循环结构编写这个程序?
2
用Java编写以下程序,求助求助
1
怎样用C语言编写这个程序?
1
C语言问题 输入一个句子,编写程序判断手机键盘上需要按几次才能打印出来这句话求一个总和?
2
编写排序子函数,将10个数由小到大排序,并在主函数中调用它
1
输入一个3行4列的整数矩阵,计算并输出对角线上的元素之和
1
编写一个void sort(int *x,int n)函数,实现用“冒泡法”将x数组中的n个数据从小到大排序
1
shell脚本单词统计问题
3
关于嵌入式操作系统的一个题目,编写一个c语言程序,其功能是将一个文本文件读出,然后再反序写回。
0
汇编语音程序,编写程序将三个32位的无符号数排序并显示