| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 339 人关注过本帖
标题:要求用指针做
只看楼主 加入收藏
tudou2xigua
Rank: 2
等 级:论坛游民
帖 子:87
专家分:54
注 册:2011-3-20
结帖率:90.32%
收藏
已结贴  问题点数:20 回复次数:6 
要求用指针做
在主函数中输入10个等长的字符串,用另一函数对它们排序,然后在主函数输出这10个已排好序的字符串。这题怎么做啊?要用指针。。。
搜索更多相关主题的帖子: 字符串 
2011-05-24 21:20
liangjinchao
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:376
专家分:697
注 册:2010-11-8
收藏
得分:20 
程序代码:
#include"stdio.h"
void sort(char *pt);
int main()
{
    char arry[10][11];
    int i=0;
    printf("请输入10个字符串,每个字符串以回车结束(每个字符串只限10个字符):\n");
    for(i=0;i<10;i++)
    {
        gets(arry[i]);
        sort(arry[i]);
    }
    printf("排序后:\n");
    for(i=0;i<10;i++)
    {
        puts(arry[i]);
    }


}

void sort(char *pt)
{
    int i,j,k=0;
    char temp;
    while(*(pt+k)!='\0')
    {
        k++;
    }
    for(i=0;i<k;++i)
        for(j=i+1;j<k;++j)
            if(*(pt+j)<*(pt+i))
            {
                temp=*(pt+i);
                *(pt+i)=*(pt+j);
                *(pt+j)=temp;
            }
}



图片附件: 游客没有浏览图片的权限,请 登录注册

不清楚你是对每个字符串排序还是以每个字符串的首字母来给字符串排序!
只写了个对每个字符串排序的,首字母排序也异曲同工!

因为有了因为,所以有了所以,既然已成既然,何必再说何必
2011-05-24 22:50
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
收藏
得分:0 
程序代码:
#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-05-24 23:01
tudou2xigua
Rank: 2
等 级:论坛游民
帖 子:87
专家分:54
注 册:2011-3-20
收藏
得分:0 
回复 2楼 liangjinchao
恩,谢啦!
2011-05-25 10:24
chenjin1st
Rank: 2
来 自:湖南
等 级:论坛游民
帖 子:26
专家分:44
注 册:2011-5-13
收藏
得分:0 
请问 怎么个排序法。

共同进步,共同收获!!!!
2011-05-25 12:09
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:0 
怎么都行啊

                                         
===========深入<----------------->浅出============
2011-05-25 17:05
zhwhichyou
Rank: 1
等 级:新手上路
帖 子:2
专家分:2
注 册:2011-5-26
收藏
得分:0 
/*-------------------------------
*
* 输入10个字符,按字母表先后顺序排序
*
*----------------------------------*/
#include"stdio.h"
void sort(char *pt);
/*-------------------------------*/
int main()
{
    char arry[10]={};
    int i=0;
    printf("请输入10个字符,以Enter结束:\n");
    while( (i<10)&&(arry[i]!='\n') )         //bug!!
    {
        arry[i]=getchar();
        i++;  
    }
    sort(arry);
    printf("按照字母表先后顺序排序后:\n");
    for(i=0;i<10;i++)
    {
        putchr(arry[i]);
    }

}
/*------------------------------------*/
void sort(char *pt)
{
    char i=0; char j=0; char temp=0;

        for(j=0,j<9,j++)     //由小到大排序
        {
          for(i=0,i<9,i++)
            if(*(pt+i)>*(pt+i+1))
            {
                temp=*(pt+i+1);
                *(pt+i+1)=*(pt+i);
                *(pt+i)=temp;
            }
         }
}
2011-05-26 09:41
快速回复:要求用指针做
数据加载中...
 
   



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

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