源代码-【二维字符数组】从键盘输入若干英文单词,单词最大长度不超过 15 个字母,把单词按照长度从大到小排序

问题描述

【二维字符数组】从键盘输入若干英文单词,单词最大长度不超过 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

源代码-【二维字符数组】从键盘输入若干英文单词,单词最大长度不超过 15 个字母,把单词按照长度从大到小排序的相关文章

c语言中向二维字符数组中写入符号*

问题描述 c语言中向二维字符数组中写入符号* 声明一个二维字符数组char str[][]: 通过循环嵌套向里面写入符号 * 怎么实现?求前辈指教. 解决方案 for (int i = 0; i < 100; i++) { arr[i / 10][u % 10] = ' '; } for (i =0; i < 10; i++) { arr[3][i] = '*'; arr[4][i] = '*'; arr[i][3] = '*'; arr[i][4] = '*'; } 解决方案二: 只要一行

struct-用注释替换源代码后,直接跳过从键盘输入sex的值,执行salary的输入,什么情况?不好编辑,有点难看,谅解

问题描述 用注释替换源代码后,直接跳过从键盘输入sex的值,执行salary的输入,什么情况?不好编辑,有点难看,谅解 #include #include #include struct worker_List { char name[20]; char sex[1];//char sex: long salary; }; int main() { int len = 0; struct worker_List *str; int i = 0; char name[20]; printf ("p

C++技巧之二维动态数组类模板

C++提供了许多强大的机制来实现代码的高度复用.来使我们使用我们自已的类就像使用内置类型那样方便快捷.比如模板,运算符重载等等.模板好比如是一个大批量生产函数和类的工厂,使我们不用再去关心与数据类型相关的繁琐编程细节,把我们精力留给那些真正值得我们去认真思考的地方.而运算符重载则使我们的程序更直观更简洁,这不仅使我们更容易读懂我们的程序,而且使我们能以一种更为流畅的方式来表达我们的想法.就像上篇文章说到的,如果我们把动态分配的二维数组用类模板实现,并重载相应的操作符,我们就能十分方便的使用我们自

java 二维字符串数组初始化及赋值问题

问题描述 java 二维字符串数组初始化及赋值问题 错误是"{ expected after token ; "请问为什么会出现这样的错误,该怎么解决? 解决方案 第一句话没错,第二句话,要放到具体的方法内,比如构造函数里,不要放到类一层的地方 解决方案二: 你确定有报错?我像这样写都没有报错! 解决方案三: java字符串数组初始化和赋值

visual studio-vs2013调试中,如何通过指针监视二维动态数组的值?

问题描述 vs2013调试中,如何通过指针监视二维动态数组的值? int **p = new int *[row]; for (i = 0; i < row; i++) p[i] = new int[column]; 比如说我用上面语句创建额一个row行column列的数组,调试的时候怎样在监视窗口中,看到整个二维数组的值呢? 如果是一维的,例如int *p=new int[5]: 可以将p,5写到监视名称里,可二维的我就不知道了...求帮助 解决方案 调试状态下,调试->窗口->内存,

c++ 大家帮忙看看这个二维动态数组的声明和引用有什么问题吗

问题描述 c++ 大家帮忙看看这个二维动态数组的声明和引用有什么问题吗 Image::Image(unsigned char **m, int h, int w) { m=new unsigned char *[h]; for (int x=0;x<h;x++) { m[x]=new unsigned char[w]; } } void Image::Read(char* ImageName) { IplImage* img = cvLoadImage(ImageName, CV_LOAD_IM

visual studio-VS 调试时怎么看二维动态数组

问题描述 VS 调试时怎么看二维动态数组 就是VS调试的时候,怎么看二维动态数组的各个元素呀 例如**p,然后内存申请好了, 然后监视窗口里打p,10,展开,只能看到每一行的第一个元素,怎么看所有元素呀 解决方案 每个元素点开,再下一层中查看.最好是关闭编译器的优化,重新编译后调试

学习二维动态数组指针做矩阵运算的方法_C 语言

本文分享了利用二维动态数组指针做矩阵运算的实现代码. 1. 头文件     // juzhen 2.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include "stdlib.h" #include "windows.h" #define OK 0 #define NG -1 typedef struct mat { int

PHP 二维关联数组根据其中一个字段排序(推荐)

PHP 中二维关联数组如何根据其中一个字段进行排序,下面的代码将二维关联数组 $array 根据 $orderby 字段进行排序: function wpjam_array_multisort($array, $orderby, $order = SORT_ASC, $sort_flags = SORT_NUMERIC){ $refer = array(); foreach ($array as $key => $value) { $refer[$key] = $value[$orderby];