| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5796 人关注过本帖
标题:将字符串从小到大排序
只看楼主 加入收藏
cxly
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2016-11-15
结帖率:73.33%
收藏
已结贴  问题点数:6 回复次数:6 
将字符串从小到大排序
#include<stdio.h>
int main(void)
{
    int i,k,j,index,temp;
    char line[20];

    k=0;
    while((line[k]=getchar())!='\n')
        k++;
    line[k]='\n';

    for(j=0;j<k-1;j++)
        index=j;
    for(i=j+1;i<k;i++)
        if(line[i]<line[index])
            index=i;
        temp=line[index];
        line[index]=line[j];
        line[j]=temp;

        for(i=0;i<k;i++)
            printf("%d",line[i]);
        printf("\n");

        return 0;
}
显示没错,但运行不了?输入一个字符串,把字符按从小到大的顺序排序后输出。
输入格式:

输入一个长度不超过20的字符串。
输出格式:

把字符按从小到大的顺序排序后输出。
输入样例:

在这里给出一组输入。例如:
defgacb

输出样例:

在这里给出相应的输出。例如:
abcdefg
搜索更多相关主题的帖子: include return 字符串 
2016-11-26 15:06
qq736377820
Rank: 1
等 级:新手上路
帖 子:15
专家分:4
注 册:2016-11-16
收藏
得分:2 
#include<stdio.h>
int main()
{
    char ch1,ch2,ch3,t;
    while(scanf("%c%c%c%*c",&ch1,&ch2,&ch3)!=EOF)
    {
        if(ch1>ch2)
        {
            t=ch1;
            ch1=ch2;
            ch2=t;
        }
        if(ch1>ch3)
        {
            t=ch1;
            ch1=ch3;
            ch3=t;
        }
        if(ch2>ch3)
        {
            t=ch2;
            ch2=ch3;
            ch3=t;
        }
        printf("%c %c %c\n",ch1,ch2,ch3);

    }
    return 0;
} 自己再添加几组就可以
2016-11-26 15:36
cxly
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2016-11-15
收藏
得分:0 
回复 2楼 qq736377820
我想知道我的哪里错了?希望大神指教
2016-11-26 15:41
bjut_Allen
Rank: 9Rank: 9Rank: 9
来 自:平乐园工业技术学校
等 级:蜘蛛侠
威 望:8
帖 子:323
专家分:1223
注 册:2016-10-16
收藏
得分:2 
回复 3楼 cxly
把选择排序的两个for循环大括号加上

Code is my life.
2016-11-26 16:32
cxly
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2016-11-15
收藏
得分:0 
回复 4楼 bjut_Allen
还是错的
2016-11-26 16:47
xufan
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:6
帖 子:232
专家分:804
注 册:2008-10-20
收藏
得分:2 
好像字符串的比较“if(line[i]<line[index])” 这个地方是有问题的,不能这样比较吧!

~~~~~~我的明天我知道~~~。
2016-11-26 17:12
炎天
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:桃花岛
等 级:贵宾
威 望:29
帖 子:1218
专家分:4986
注 册:2016-9-15
收藏
得分:2 
#include<stdio.h>
 int main(void)
 {
     int i,k,j,index;
     char temp;              //temp=line[index],类型是不是要和一样
     char line[20];

     k=0;
     while((line[k]=getchar()) != '\n')
         k++;
     line[k]='\n';

     for(j = 0; j < k-1; j ++)      //加括号
     {
        index=j;
       for(i = j+1; i < k; i ++)
        {
         if(line[i] < line[index])
          index=i;
          temp=line[index];
          line[index]=line[j];
          line[j]=temp;
        }
      }
        
     for(i = 0; i < k; i ++)
        printf("%c",line[i]);            //char
     printf("\n");

     return 0;
}

早知做人那么辛苦!  当初不应该下凡
2016-11-26 20:25
快速回复:将字符串从小到大排序
数据加载中...
 
   



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

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