| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 552 人关注过本帖
标题:结果又错啦!字符串排序,新手求助啊
只看楼主 加入收藏
那个人啊
Rank: 2
等 级:论坛游民
帖 子:56
专家分:36
注 册:2011-3-9
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:10 
结果又错啦!字符串排序,新手求助啊
void c(char p[3][100])
{
    char b[100];int i,j;
    for(i=0;i<2;i++){
        for(j=0;j<2-i;j++)
            if(strcmp(*p+j,*p+j+1)<0){strcpy(b,*p+j);strcpy(*p+j,*p+j+1);strcpy(*p+j+1,b);}
    }
    for(j=0;j<3;j++)puts(*p+j);
}
就是用冒泡法来为字符串排序,结果很奇怪啊!想不出来啊!多谢啦
搜索更多相关主题的帖子: 字符串 
2011-06-12 11:35
刘定邦
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:687
专家分:1570
注 册:2010-9-21
收藏
得分:3 
你那个交换两个串的代码好像有问题.
2011-06-12 11:43
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
收藏
得分:2 
程序代码:
#include <stdio.h>
#include <string.h>
#define SIZE 81

void swap(char * p1, char * p2) {
    char temp = *p1;
    *p1 = *p2;
    *p2 = temp;
}

void bubble_sort(char * data, int begin, int end) {
    int i, j, flag = 1;
    for(i = begin; i < end - begin && flag; i++) {
        flag = 0;
        for(j = begin; j < end - begin - i; j++) {
            if(data[j] > data[j + 1]) {
                swap(data + j, data + j + 1);
                flag = 1;
            }
        }
    }
}

int main(void) {
    char str[SIZE];
    gets(str);
    bubble_sort(str, 0, strlen(str) - 1);
    puts(str);
    return 0;
}
图片附件: 游客没有浏览图片的权限,请 登录注册

试试这个呢?

My life is brilliant
2011-06-12 11:46
那个人啊
Rank: 2
等 级:论坛游民
帖 子:56
专家分:36
注 册:2011-3-9
收藏
得分:0 
回复 3楼 lz1091914999
楼上好像误解我意思了,我得意思是:
abcd
bdfgh
fghcv
cv

排序:
abcd
bdfgh
cv
fghcv
啊!我又要后悔语文没学好了!
2011-06-12 16:28
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
收藏
得分:10 
前段时间写的,仅供参考!
程序代码:

#include <stdio.h>
#include <string.h>
#define N 10

int main (void) {

        void sort (char *str[]);
        char a[N][20],*p[N];
        int i;


//input
        for(i=0;i<N;i++) {
                scanf("%s",a[i]);
                p[i]=a[i];
        }

//sort
        sort(p);

//display
        printf("After sorted ...\n");
        for(i=0;i<N;i++)
                printf("%s\n",*(p+i));

        return 0;

}
void sort(char *str[]) {
        int i,j;
        char *temp;
        for(i=0;i<N-1;i++) {
                for(j=i+1;j<N;j++) {
                        if(strcmp(str[i],str[j])>0) {
                                temp=str[i];
                                str[i]=str[j];
                                str[j]=temp;
                        }
                }
        }
}

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-06-12 17:00
qianyou
Rank: 3Rank: 3
来 自:江西南昌
等 级:论坛游侠
帖 子:76
专家分:189
注 册:2011-3-25
收藏
得分:0 
回复 4楼 那个人啊
在这个程序上加一个判断是否继续的代码!先定义一个参数n,当n遇到空格或换行的时候判断选择是否continue,否则break!这样可以吗?
2011-06-12 17:29
那个人啊
Rank: 2
等 级:论坛游民
帖 子:56
专家分:36
注 册:2011-3-9
收藏
得分:0 
回复 6楼 qianyou
语文没学好,泪奔啊,不懂意思。
2011-06-12 17:56
loveminttea
Rank: 3Rank: 3
来 自:河南科技学院
等 级:论坛游侠
帖 子:95
专家分:146
注 册:2010-10-14
收藏
得分:0 
楼主 我佩服你
2011-06-12 19:57
那个人啊
Rank: 2
等 级:论坛游民
帖 子:56
专家分:36
注 册:2011-3-9
收藏
得分:0 
回复 8楼 loveminttea
just tell me 为什么。
2011-06-14 14:27
hjywyj
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:1114
专家分:2611
注 册:2010-4-14
收藏
得分:0 
回复 9楼 那个人啊
语文没有学好,不明白你准备怎样排序!
2011-06-14 14:30
快速回复:结果又错啦!字符串排序,新手求助啊
数据加载中...
 
   



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

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