| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1790 人关注过本帖
标题:C语言ASCLL码排序
只看楼主 加入收藏
蛋疼菜鸟
Rank: 1
来 自:山东省
等 级:新手上路
帖 子:11
专家分:0
注 册:2016-2-14
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:3 
C语言ASCLL码排序
这个题是以前ACM的题。
但是我对于题目要求中的按格式输出不太会。
下面是题目,以及本人的编码。

输入三个字符后,按各字符的ASCII码从小到大的顺序输出这三个字符。

输入数据有多组,每组占一行,有三个字符组成,之间无空格。

对于每组输入数据,输出一行,字符中间用一个空格分开。

输入
qwe
asd
zxc

输出

e q w
a d s
c x z





#include<stdio.h>
int main()
{
 int i,l,t,n;
 char a[3];
 scanf("%d",&n);
 for(i=0;i<=3;i++)
   scanf("%c",&a[i]);
      for(l=0;l<3;l++)
        {
           for(i=0;i<3-l-1;i++)
            {
                if(a[i]>a[i+1])
                {
                    t=a[i];
                    a[i]=a[i+1];
                    a[i+1]=t;

               }

            }

        }
        for(i=0;i<3;i++)
        printf("%c ",a[i]);
 }

搜索更多相关主题的帖子: include C语言 
2016-07-01 22:55
lanke711
Rank: 9Rank: 9Rank: 9
来 自:流浪在天国之路
等 级:蜘蛛侠
威 望:7
帖 子:317
专家分:1437
注 册:2015-7-16
收藏
得分:7 
才学疏浅,我觉得这题想要连续输入,还是用链表比较容易。一块内存储三个字符的数值。想输入多少块数据就输入多少块数据。

普通人之所以普通,是因为他们普遍有一个通病,那就是认为自己永远普通。
千夫所指,我亦坚持。就算被所有人误解,我也照样守护这一切。
我们总是觉得,这些灵魂的表情,傲慢自大,目中无人,其实,真正目中无人的是我们。它们傲慢的不过是表情,而我们傲慢的却是行为!
记得,是为了忘记!
只要想着有那么一天,我就能忍受现在的每一天!
灾难并不可怕,可怕的是心中没有了希望。
你以为我在天堂,其实我正在路上。
当你觉得自己走不到终点的时候,请不要放弃。或许你的对手也是这种感觉。
2016-07-04 03:53
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9024
专家分:54030
注 册:2011-1-18
收藏
得分:7 
看不懂你的代码,第一句就看不懂 scanf("%d",&n) 这是干什么用的,对应题目中的哪句话?

程序代码:
#include <stdio.h>

#define SWAP_IF_GREATER(a,b) \
    do {                     \
            if( a > b )      \
            {                \
                char t = a;  \
                a = b;       \
                b = t;       \
            }                \
    } while(0)

int main( void )
{
    for( char a,b,c; scanf("%c%c%c%*c",&a,&b,&c)==3; )
    {
        SWAP_IF_GREATER( a, b );
        SWAP_IF_GREATER( b, c );
        SWAP_IF_GREATER( a, b );

        printf( "%c %c %c\n", a,b,c );
    }

    return 0;
}

2016-07-04 08:38
wanglianyi1
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:14
帖 子:647
专家分:2067
注 册:2015-6-18
收藏
得分:7 
程序代码:
#include <stdio.h>
#include <malloc.h>
#define N 3            //每行的字符个数 
//清空缓存函数
void safe_flush(FILE *fp)
{
    int ch;
    while( (ch = fgetc(fp)) != EOF && ch != '\n' );        
}
int main()
{
    int i=0,j=0,k=0,n=N,row=0;
    char temp;
    char **p;
    printf("请输入字符串行数:");
    scanf("%d", &row);    
    safe_flush(stdin);
    //为二维数组分配row行
    p=(char**)malloc(sizeof(char*)*row);
    //为每列分配N个大小空间
    for(i=0;i<row;i++)    
        p[i]=(char*)malloc(sizeof(char)*N);       
    for(i=0;i<row;i++)
    {
        for(j=0;j<N;j++)
        {
            scanf("%c",&p[i][j]);        
        }    
        getchar();
    //    safe_flush(stdin);
    }        
//每一行的N个字符从小到大排序
    for(k=0;k<row;k++)
    {
        n=N;
        for(i=0;i<N;i++)
        {
//n优化循环比较的次数
            n--;        
            for(j=0;j<n;j++)
            {            
                if(p[k][j]>p[k][j+1])
                {
                    temp=p[k][j];
                    p[k][j]=p[k][j+1];
                    p[k][j+1]=temp;
                }            
            }
        }    
    }
//每行N列输出该数组的元素值 
    for(i=0;i<row;i++)
    {        
        for(j=0;j<N;j++)
        {
        printf("%c ",p[i][j]);        
        }    
        if(j==N)
            printf("\n");
    }
    //释放动态开辟的空间
    for(i=0;i<row;i++)
    {
        free(p[i]);
        p[i]=NULL;
    }
    free(p);
    p=NULL;
    return 0;
}

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


[此贴子已经被作者于2016-7-4 14:32编辑过]

2016-07-04 11:56
快速回复:C语言ASCLL码排序
数据加载中...
 
   



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

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