| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 464 人关注过本帖
标题:一个指针数组的排序问题
只看楼主 加入收藏
幻想乡流浪者
Rank: 2
来 自:种花家
等 级:论坛游民
帖 子:27
专家分:21
注 册:2015-6-6
结帖率:75%
收藏
已结贴  问题点数:20 回复次数:4 
一个指针数组的排序问题
我写了一个对名字进行排序的程序,有三个模块:主函数,排序函数,输出函数:
***************主函数*****************
#include<stdio.h>
#include<string.h>
int main()
{
    void sort1(char *name[],int n);//冒泡排序
    void prin(char *name[],int n);
    char *name[]={
        "shenshitin","zhengjialiang","zhangmin",
        "puhuarong","moqingqing","zhengyongfa",
        "liuziling","chenjun","qianrong","chenminghui",
        "xuxiuju","zhongbin","laixingyin",
        "meireguili","bahetiluer","kudireti","wuxiaoli"};
    int n=17;
    printf("*****冒泡排序*****\n");
    sort1(name,n);
    prin(name,n);
    return 0;
}
***************排序函数**************(冒泡排序)
void sort1(char *name[],int n)
{
    char *remp;
    int i,j;
    for(i=0;i<n-1;i++)
    {
        for(j=0;j<n-1-i;j++)
        {
            if(strcmp(name[j],name[j+1])>0)
            {
                remp=name[j];
                name[j]=name[j+1];
                name[j+1]=name[j];
            }
        }
    }
}
**************输出函数****************
void prin(char *name[],int n)
{
    int i;
    for(i=0;i<n;i++)
    {
        printf("%d:%s\n",i+1,name[i]);
    }
}

语法上没有错误,但是调试的结果是这样的:只储存了最后三个字符串。
图片附件: 游客没有浏览图片的权限,请 登录注册
搜索更多相关主题的帖子: include 
2015-06-10 17:10
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:10 
remp=name[j];
name[j]=name[j+1];
name[j+1]=name[j]; name[j+1]=remp;
2015-06-11 09:15
八画小子
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:37
帖 子:709
专家分:2063
注 册:2010-11-11
收藏
得分:10 
name[j+1]=name[j];

应该为name[j+1]=remp;
2015-06-11 09:31
幻想乡流浪者
Rank: 2
来 自:种花家
等 级:论坛游民
帖 子:27
专家分:21
注 册:2015-6-6
收藏
得分:0 
嗯,谢谢,已经找到问题了,就像你说的那样。
2015-06-12 00:38
风清云起
Rank: 1
等 级:新手上路
帖 子:11
专家分:4
注 册:2015-6-27
收藏
得分:0 
你这是指针问题吗?????????一个指针都没找到!!!看我的!!!
//字符串数组排序
void sortedArrayByFloat(char *p[] , int count)
{
    for (int i = 0; i < count - 1; i++) {
        for (int j = 0; j < count - 1 - i; j++) {
            if (strcmp(*(p + j), *(p + j + 1)) > 0) {
                char *temp = nil;
                temp = *(p + j);
                *(p + j) = *(p + j + 1);
                *(p + j + 1) = temp;
            }
        }
    }
    for (int i = 0; i < count; i++) {
        printf("%s\n" , *(p + i));
    }
}
2015-07-02 21:18
快速回复:一个指针数组的排序问题
数据加载中...
 
   



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

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