| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1511 人关注过本帖, 1 人收藏
标题:分享快乐散分(小牛 中牛 大牛 统统飘过~~~~~~~)
只看楼主 加入收藏
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
结帖率:99.76%
收藏(1)
已结贴  问题点数:20 回复次数:13 
分享快乐散分(小牛 中牛 大牛 统统飘过~~~~~~~)
题目:估计老掉牙了
由控制台输入N行字符串  由程序把这些字符串接收进来  然后对这些字符串进行排序  最后输出排序后的字符串。


解题有2种方式:
1、使用指针数组  2、使用二级字符串指针

下面分别就这两种方式给出代码  欢迎指正

1、以下是使用指针数组完成

程序代码:
//////////////////////////////////////////////////////////
#include <stdio.h>
#include <string.h>
#include <malloc.h>

#define N 10

int main()
{
    char *p[N];
    char *tmp;
    int i=0,j=0;
    for(i=0;i<N;i++)
    {
        p[i]=(char*)malloc(256);     //给字符串开辟内存空间
        memset(p[i],0,sizeof(p[i]));  //初始化为 0
    }
    i=0;
    while(i<N)
    {
        scanf("%s",p[i]);
        i++;
    }
    for(i=0;i<N;i++)
    {
        for(j=i+1;j<N;j++)
        {
            if(strcmp(p[i],p[j])>0)   //由小到大排序
            {
                tmp=p[i];
                p[i]=p[j];
                p[j]=tmp;
            }
        }
    }
    printf("======== 神奇的分界线========\n");
    for(i=0;i<N;i++)
    {
        printf("%s\n",p[i]);
    }
    return 0;
}


2、以下使用二级字符串指针完成
程序代码:
#include <stdio.h>
#include <string.h>
#include <malloc.h>

#define N 10

int main()
{
    char **p;
    char *tmp;
    int i=0,j=0;
    p= (char**)malloc(N*sizeof(char*));  //给指针数组开辟内存空间
    for(i=0;i<N;i++) *(p+i)=(char*)malloc(256);  //给字符串开辟内存空间
    i=0;
    while(i<N)
    {
        scanf("%s",*(p+i));
        i++;
    }
    for(i=0;i<N;i++)
    {
        for(j=i+1;j<N;j++)
        {
            if(strcmp(*(p+i),*(p+j))>0)   //由小到大排序
            {
                tmp=*(p+i);
                *(p+i)=*(p+j);
                *(p+j)=tmp;
            }
        }
    }
    printf("======== 神奇的分界线========\n");
    for(i=0;i<N;i++)
    {
        printf("%s\n",*(p+i));
    }
    return 0;
}




搜索更多相关主题的帖子: include 控制台 字符串 
2013-08-09 21:52
邓士林
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:淮河河畔
等 级:贵宾
威 望:61
帖 子:2392
专家分:13384
注 册:2013-3-3
收藏
得分:3 

Maybe
2013-08-09 22:06
yuccn
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:何方
等 级:版主
威 望:167
帖 子:6814
专家分:42393
注 册:2010-12-16
收藏
得分:3 
菜鸟飘过了~

我行我乐
公众号:逻辑客栈
我的博客:
https://blog.yuccn. net
2013-08-09 22:42
love云彩
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:青藏高原
等 级:贵宾
威 望:53
帖 子:3663
专家分:11416
注 册:2012-11-17
收藏
得分:3 
新手求指教

思考赐予新生,时间在于定义
2013-08-09 22:43
XiaoXiao_Ren
Rank: 3Rank: 3
来 自:西安
等 级:论坛游侠
威 望:1
帖 子:80
专家分:198
注 册:2013-7-17
收藏
得分:3 
版主:顶礼膜拜

以前的思路颠覆了 —— 一直没有思路 —— 还忘了度娘。

否极泰来
2013-08-09 23:12
幽灵X
Rank: 5Rank: 5
等 级:职业侠客
帖 子:128
专家分:328
注 册:2013-1-28
收藏
得分:3 
2013-08-09 23:18
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:3 
哥,我就想提醒一句,记得释放动态申请的空间。

重剑无锋,大巧不工
2013-08-09 23:19
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:3 
回复 7楼 beyondyf
公司里的编译工具,用上几天,就需要重启电脑,因为会出现各种离奇的编译错误,连右键菜单也显示不全,怀疑是内存泄露没了。做桌面应用开发是不是都不关注内存呀?在嵌入式系统,我现在做的产品明确规定内存泄露属于低级错误,查出来主管考评都会受影响

总有那身价贱的人给作业贴回复完整的代码
2013-08-10 06:57
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
以下是引用beyondyf在2013-8-9 23:19:47的发言:

哥,我就想提醒一句,记得释放动态申请的空间。
没事   windows 会自动管理内存的  哈哈

DO IT YOURSELF !
2013-08-10 07:20
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
写这个  主要是以前对  char **p  始终搞不懂   具体咋用

而书上  或网上  资料有限    这个基本上是自己N+1次失败  摸索着弄出来的  所以很高兴

DO IT YOURSELF !
2013-08-10 07:22
快速回复:分享快乐散分(小牛 中牛 大牛 统统飘过~~~~~~~)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016660 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved