假设每个单词不超过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;
}
编写程序对用户输入的一系列单词排序
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
0条回答
悬赏问题
- ¥15 C#读写EXCEL文件,不同编译
- ¥15 如何提取csv文件中需要的列,将其整合为一篇完整文档,并进行jieba分词(语言-python)
- ¥15 MapReduce结果输出到HBase,一直连接不上MySQL
- ¥15 扩散模型sd.webui使用时报错“Nonetype”
- ¥15 stm32流水灯+呼吸灯+外部中断按键
- ¥15 将二维数组,按照假设的规定,如0/1/0 == "4",把对应列位置写成一个字符并打印输出该字符
- ¥15 NX MCD仿真与博途通讯不了啥情况
- ¥15 win11家庭中文版安装docker遇到Hyper-V启用失败解决办法整理
- ¥15 gradio的web端页面格式不对的问题
- ¥15 求大家看看Nonce如何配置