问题描述
- 【二维字符数组】从键盘输入若干英文单词,单词最大长度不超过 15 个字母,把单词按照长度从大到小排序
-
用C语言来写,还没有学到指针,所以不要指针的写法,求大神给个源代码,我自己已经想了3个小时了还没有写出来。
解决方案
不用指针的话,没有办法动态分配内存,我们只能做一个假设,那就是键盘输入的单词不超过n(比如n=100,可以视作无限大)
至于排序,可以用冒泡都可以。
解决方案二:
#include<string.h>
#include<stdio.h>
void main()
{
char str[5][20];
int i,j,k,num[5];
printf("请输入5个字符串:n");
for(i=0;i<5;i++)
{
scanf("%s",str[i]);
num[i]=i;//保存字符串由大到小数组下标
}
for(i=0;i<4;i++)
{
for(j=i+1;j<5;j++)
{
if(strlen(str[i])<strlen(str[j]))
{
k=num[i];num[i]=num[j];num[j]=k;
}
}
}
printf("nn排序后:n");
for(i=0;i<5;i++)
{
printf("%sn",str[num[i]]);
}
}
解决方案三:
楼主怎么不采纳结贴?等着你的赏金呢。
解决方案四:
###这个地方不好显示代码,我放到了在线编译器里,点击这里看代码
里面有注释,不懂的可以继续问我~
解决方案五:
分两步:
1、接收键盘输入的字符串,使用scanf(),http://blog.csdn.net/21aspnet/article/details/174326
2、获取每一个字符串的长度,然后根据长度,选择一种排序算法。http://zhidao.baidu.com/link?url=N9IlgmQwZgRNdLEeKVBPqay5FN75YBSqn_B7O16xIkIgZtUKeqYUcloaewd65Q3_OwiHPALswU0DN_dF3ScUD2geVWIq_R8BoIm1b75VEzm
理解了这个过程,你就可以自己写程序了,记得多动手,
时间: 2024-12-15 16:51:28