gpt4 book ai didi

C:字符数组数组的字母排序

转载 作者:太空宇宙 更新时间:2023-11-04 04:31:14 25 4
gpt4 key购买 nike

这出现在我们的实验室期末考试中:制作一个程序,将 10 个字符串输入到一个数组中。然后按字母顺序输出字符串。

考试的时候想不通,现在想知道到底是怎么做到的。

到目前为止,这就是我所做的。它不能很好地处理相似或等效的字符串,它们的索引会丢失吗?任何人都可以仅使用 stdio.h 和 string.h 库来分享他们的解决方案吗?

   /*Write a program that takes 10 strings input into an array and outputs them in alphabetical order*/

#include<stdio.h>
#include<string.h>

char strings[10][150];
char ordered[10][150];
int i,j,k;
int ind;

main()
{
printf("INPUT 10 STRINGS\n");
for(i=0;i<10;i++)
{
gets(strings[i]);
}

for(i=0;i<10;i++)
{
ind=0;
for(j=0;j<10;j++)
{
if(strings[i][0]<strings[j][0])
{
ind++;
}
else if(strings[i][0]==strings[j][0])
{
k=0;
while((strings[i][k]==strings[j][k])&&strings[j][k+1]!='\0')
{
if(strlen(strings[i])<strlen(strings[j]))
{
if(strings[i][k+1]=='\0')
{
ind++;
}
else if(strings[i][k+1]<strings[j][k+1])
{
ind++;
}
}
else if(strlen(strings[i])>strlen(strings[j]))
{
if(strings[i][k+1]<strings[j][k+1])
{
ind++;
}
}
k++;
}
}
}
strcpy(ordered[ind],strings[i]);
}


printf("STRINGS: \n");
for(i=9;i>-1;i--)
{
puts(ordered[i]);
}
}

最佳答案

刚刚找到了一个简单的方法:

#include<stdio.h>
#include<string.h>
int main()
{
int i,j,n;
char str[20][20],temp[20];
puts("Enter the no. of string to be sorted");
scanf("%d",&n);
for(i=0;i<=n;i++)
{
gets(str[i]);
}
for(i=0;i<=n;i++)
for(j=i+1;j<=n;j++)
{
if(strcmp(str[i],str[j])>0)
{
strcpy(temp,str[i]);
strcpy(str[i],str[j]);
strcpy(str[j],temp);
}
}
printf("The sorted string\n");

for(i=0;i<=n;i++)
{
puts(str[i]);
}
return 0;
}

关于C:字符数组数组的字母排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36019668/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com