| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 529 人关注过本帖
标题:【求助】输入三个字符串,按照由小到大的顺序输出
只看楼主 加入收藏
积木10086
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2013-11-22
结帖率:66.67%
收藏
已结贴  问题点数:10 回复次数:7 
【求助】输入三个字符串,按照由小到大的顺序输出
#include <stdio.h>
 #include <string.h>
 
 int main()
 {
    char string[20];
    char str[3][20];
    char *p,*q;
    int i,l,m,n;
    for(i=0;i<3;i++)
    {
        gets(str[i]);
    }
    p = str[0];
    l=strcmp(p,p+1);
    if(l>0)
    {
        strcpy(string,p);
        strcpy(p,p+1);
        strcpy(p+1,string);   
    }
    m=strcmp(p,p+2);
    if(m>0)
    {
        strcpy(string,p);
        strcpy(p,p+2);
        strcpy(p+2,string);
    }
    n=strcmp(p+1,p+2);
    if(n>0)
    {
        strcpy(string,p);
        strcpy(p+1,p+2);
        strcpy(p+2,p+1);
    }
    for(q=p;q<p+3;q++)
        puts(q);
 }
编译没错,但是结果错误,在linux系统下的vi里边结果输出时段错误,这是为什么?
搜索更多相关主题的帖子: include 字符串 
2013-11-30 19:07
积木10086
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2013-11-22
收藏
得分:0 
今天下午看了好久,就是找不出错误
2013-11-30 19:13
wangshui125
Rank: 2
等 级:论坛游民
帖 子:28
专家分:36
注 册:2011-10-25
收藏
得分:4 
gets(str[i]);
不是用getchar()?取一个字符
2013-11-30 21:49
wangshui125
Rank: 2
等 级:论坛游民
帖 子:28
专家分:36
注 册:2011-10-25
收藏
得分:0 
程序代码:
#include <stdio.h>
#include <string.h>

int main()
{
    char string[20];
    char str[3][20];/*这个做什么?*/
    char *p,*q;
    int i,l,m,n;
    for(i=0;i<3;i++)
    {
        gets(str[i]);
    }
    p = str[0];
    l=strcmp(p,p+1);
    if(l>0)
    {
        strcpy(string,p);
        strcpy(p,p+1);
        strcpy(p+1,string);   
    }
    m=strcmp(p,p+2);
    if(m>0)
    {
        strcpy(string,p);
        strcpy(p,p+2);
        strcpy(p+2,string);
    }
    n=strcmp(p+1,p+2);
    if(n>0)
    {
        strcpy(string,p);
        strcpy(p+1,p+2);
        strcpy(p+2,p+1);
    }
    for(q=p;q<p+3;q++)
        puts(q);
}
2013-11-30 21:52
积木10086
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2013-11-22
收藏
得分:0 
回复 3楼 wangshui125
gets(str[i])
gets(字符数组)
这是可以的
2013-11-30 21:53
积木10086
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2013-11-22
收藏
得分:0 
回复 4楼 wangshui125
定义一个三行20列的数组,相当于三个字符串
2013-11-30 21:55
zhaogay
Rank: 7Rank: 7Rank: 7
来 自:宫
等 级:黑侠
帖 子:151
专家分:586
注 册:2013-10-10
收藏
得分:4 
楼主要理解p+1,然后再修修,应该就可以了

好好学习,天天想上
2013-11-30 22:32
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:4 
这里应该用数组指针吧


[fly]存在即是合理[/fly]
2013-11-30 23:29
快速回复:【求助】输入三个字符串,按照由小到大的顺序输出
数据加载中...
 
   



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

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