| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 427 人关注过本帖
标题:字母排序
只看楼主 加入收藏
菜鸟ぃ求助
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2013-10-28
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:5 
字母排序
//输入字母然后按字母顺序排出,大写在前,例如:输入AJjhNs输出AJNhjs
#include<stdio.h>
int main()
{   
    int i=0;
    char a[20];
    printf("请输入字母:\n");
    gets(a);
    for(;a[i]!='\0';i++);
    printf("一共有%d个字母:\n",i);
    for(int j=0;j<i-1;j++)       //冒泡排序
       for(int k=0;k<i-1-j;k++)
         {int m;
            if(a[k]>a[k+1])
            {int  
             t=a[k];
             a[k]=a[k+1];
             a[k+1]=t;                           
            }            
         }
    printf("结果为:\n");
    for(int j=0;a[j]<95;j++)    //排字母
        {
             printf("%c",a[j]);
             if(j>i) break;
        }
    for(int j=0;a[j]>95;j++)   
        {
             printf("%c",a[j]);
             if(j>i) break;
        }

    getchar();
    return 0;
}
//但在输入AJjhNs输出AJNhjs  时只输出了大写之母  即AJN
搜索更多相关主题的帖子: include 字母 
2013-12-10 23:38
韶志
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:斗气大陆
等 级:贵宾
威 望:44
帖 子:2223
专家分:13592
注 册:2013-3-22
收藏
得分:13 
#include<stdio.h>
int main()
{   
    int i=0,j,k,m,t;
    char a[20];
    printf("请输入字母:\n");
    gets(a);
    for(;a[i]!='\0';i++);
    printf("一共有%d个字母:\n",i);
    for(j=0;j<i;j++)       //冒泡排序
       for(k=0;k<i-1-j;k++)
         {
            if(a[k]>a[k+1])
            {t=a[k];
             a[k]=a[k+1];
             a[k+1]=t;                           
            }            
         }
    printf("结果为:\n");
    for(j=0;j<i;j++)    //排字母
        {
             printf("%c",a[j]);
        }
    //我不明白,你前面都已经根据ASCII码排好序了,后面输出不就行啦,怎么搞这么麻烦
    getchar();
    return 0;
}

三十年河东,三十年河西,莫欺少年穷!
2013-12-11 00:16
ytlcainiao
Rank: 2
等 级:论坛游民
帖 子:48
专家分:74
注 册:2013-11-28
收藏
得分:5 
#include<stdio.h>
int main()
{   
    int i=0,k,t,m;
    char a[20];
    printf("请输入字母:\n");
    gets(a);
    for(;a[i]!='\0';i++);
    printf("一共有%d个字母:\n",i);
    for(int j=0;j<i-1;j++)//选择排序
    {
        k=j;
        for(m=j+1;m<i;m++)
            if(a[k]>a[m]) k=m;
        if(k!=j){
        t=a[j];
        a[j]=a[k];
        a[k]=t;}
    }
    printf("结果为:\n");
    for(int j=0;j<i;j++)    //排字母
    {
         printf("%c",a[j]);
    }
    getchar();
    return 0;
}
2013-12-11 10:02
so_love
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:7
帖 子:812
专家分:4151
注 册:2013-11-25
收藏
得分:2 
是被。直接输出就行。

一花一世界、一叶一追寻、片片花叶落、情系何人身。
2013-12-11 10:12
菜鸟ぃ求助
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2013-10-28
收藏
得分:0 
回复 楼主 菜鸟ぃ求助
谢谢你的建议,我又分析了下代码,是循环条件的问题,谢谢了

生命不息,战斗不止!!
2013-12-11 17:36
so_love
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:7
帖 子:812
专家分:4151
注 册:2013-11-25
收藏
得分:0 
   习惯就好。。。。有的问题是自己马虎造成的。。。

一花一世界、一叶一追寻、片片花叶落、情系何人身。
2013-12-11 17:38
快速回复:字母排序
数据加载中...
 
   



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

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