manju99 2019-01-08 20:12 采纳率: 0%
浏览 1122

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

假设每个单词不超过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条回答

    报告相同问题?

    悬赏问题

    • ¥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如何配置