| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 653 人关注过本帖
标题:字符串按照字典排序的程序,帮我看看二维数组怎么传递参数。
取消只看楼主 加入收藏
婷婷99
Rank: 1
等 级:新手上路
帖 子:48
专家分:7
注 册:2012-2-28
结帖率:25%
收藏
已结贴  问题点数:20 回复次数:3 
字符串按照字典排序的程序,帮我看看二维数组怎么传递参数。
#include "stdafx.h"
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAX 10
char *a[4] = {"bacd","bad","bacde","abc"};
int com_char(char *a,char *b, int m)//比较两个字符串
{
    //int i, j;
    int len;
    len = (strlen(a) > strlen(b) ? strlen(b) : strlen(a));//两个字符串中长度较小的一个
    if(m < len)
    {
        if(a[m] > b[m])
            return 1;
        else
            if(a[m] < b[m])
                return 0;
            else
                return com_char(a,b,m + 1);
    }
}
void dsort(char a[4][10])//冒泡排序   //如何传递形参
{
    char temp[20];
    int i, j, m = 0;
    for(i = 1; i < 4; i ++)
    {
        for(j = 0; j <4 - i; j ++)
        {
            if(com_char(a[i],a[j], m))
            {
                *temp = *a[i];
                *a[i] = *a[j];
                *a[j] = *temp;
            }
        }
    }        
}
int _tmain(int argc, _TCHAR* argv[])
{
    int i;
    dsort(a[4]);//怎么写实参
    for(i = 0; i < 4; i ++)
        printf("%s\t",a[i]);
    return 0;
}
帮我看看参数怎么写?
搜索更多相关主题的帖子: abc include return 字符串 
2012-04-04 11:03
婷婷99
Rank: 1
等 级:新手上路
帖 子:48
专家分:7
注 册:2012-2-28
收藏
得分:0 
程序代码:
#include <stdio.h>
#include <string.h>
#define MAX 10
char a[4][10] = {"bacd","bad","bacde","abc"};
int com_char(char a[10],char b[10], int m)
{
    //int i, j;
    int len;
    len = (strlen(a) > strlen(b) ? strlen(b) : strlen(a));
    if(m <= len)
    {
        if(a[m] > b[m])
            return 1;
        else
            if(a[m] < b[m])
                return 0;
            else
                return com_char(a,b,m + 1);
    }
    //else
        //break;
}
void dsort(char a[][10])
{
    char temp[20];
    int i, j, m = 0;
    for(i = 1; i < 4; i ++)
    {
        for(j = 0; j <4 - i; j ++)
        {
            if(com_char(a[j],a[j+1], m))
            {
                strcpy(temp,a[j]);
               
                memset(a[j],0,10);
                strcpy(a[j],a[j+1]);
           
                memset(a[j+1],0,10);
                strcpy(a[j+1],temp);
       
            }
        }
    }
    for(i = 0; i < 4; i ++)
        printf("%s\t",a[i]);       
}
int main()
{
//    int i;
    dsort(a);
   
    return 0;
}
我终于写出来了,对我所定义的那四个字符串排好序了,不过代码还需要优化,以便处理大的数据。
2012-04-04 12:11
婷婷99
Rank: 1
等 级:新手上路
帖 子:48
专家分:7
注 册:2012-2-28
收藏
得分:0 
上了其他论坛才看到人家说的调用qsort函数也行而且简单方便。
2012-04-05 19:41
婷婷99
Rank: 1
等 级:新手上路
帖 子:48
专家分:7
注 册:2012-2-28
收藏
得分:0 
程序代码:
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int com(const void *a, const void *b)
{
    return strcmp((char*)a, (char*)b);
}
int main()
{
    char a[4][10] = {"abc","bgdfg","kfgh","dfguer"};
    qsort(a,4,10,com);
    for(int i = 0; i < 4; i ++)
        printf("%s\n",a[i]);
    return 0;
}
多简洁。
2012-04-05 22:09
快速回复:字符串按照字典排序的程序,帮我看看二维数组怎么传递参数。
数据加载中...
 
   



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

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