C语言编程:输入三个字符后,按各字符的ASCII码从小到大的顺序输出这三个字符。

输入数据有多组,每组占一行,有三个字符组成,之间无空格。
例如输入 qwe
asd
zxc
输出 e q w
a d s
c x z

ASCII码从小到大的顺序输出这三个字符的源代码如下:

#include<

stdio.h>

void main()
{

char a,s,c;

char max,min; 

printf("Please input three numbers:");

scanf("%c,%c,%c",&a,&b,&c);

max=a;

if(max<b) max=b;

if(max<c) max=c;

printf("max=%c\n",max);

min=a;

if(min>b) min=b;

if(min>c) min=c;

printf("min=%d\n",min);

}

扩展资料

找出并打印ASCII码最大的字符的源代码如下

#include <stdio.h>

void main()

{

char a,b,c,max;

scanf("%c%c%c",&a,&b,&c);//读入三个字符如abc

max=a;//初始化最大为第一个

if(b>max) max=b;//和第二个比较如果第二个大于max,b赋值给max

if(c>max) max=c;//同上

printf("%c",max);

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-10-10

此题的正确答案如下:

#include<stdio.h>

main()

chara,d,c,b;

inti;

scanf("%d",&i);

getchar();

while(i--)

scanf("%c%c%c",&a,&b,&c);

getchar();

if(a>b){d=c;a=c;b=d;}

if(a>c){d=n;a=n;c=d;}

if(b>c){d=n;b=n;c=d;}

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

输入程序

<参考运行结果>

扩展资料:

Scanf()的用法

输出值只是空格前的字符,因为scanf函数的输入格式不正确。您需要在输入参数的变量前添加&。

Scanf(“%s”,s);更改为scanf(“%s”,&s);

scanf的用法是:scanf(“格式控制字符串”,输入参数一,输入参数二);

格式控制字符串包含:格式控制说明,普通字符。

注意:

1、格式控制字符串指示输入的格式(int类型为%d,float为%f,double为%lf)

2、普通字符:输出数据时,按原样输出字符,例如:“ fahr =%d,celsius =%d \ n”中的fahr =,celsius =。

3、输入参数是变量的地址,因此在变量前面添加&。

本回答被网友采纳
第2个回答  2019-06-04

#include<stdio.h>

main()

chara,b,c,d;

inti;

scanf("%d",&i);

getchar();

while(i--)

scanf("%c%c%c",&a,&b,&c);

getchar();

if(a>b){d=a;a=b;b=d;}

if(a>c){d=a;a=c;c=d;}

if(b>c){d=b;b=c;c=d;}

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

运行结果:

扩展资料:

scanf()用法:

输出的值只是空格前面的字符是因为scanf函数的输入格式错误,输入参数的变量前需要加&。

scanf("%s",s);改为scanf("%s",&s);

scanf的用法是:scanf("格式控制字符串",输入参数一,输入参数二);

格式控制字符串包含:格式控制说明,普通字符。

1、格式控制字符串表示输入的格式,(int型用%d,float用%f,double型用%lf)

2、普通字符:在输出数据的时候,按照原样输出的字符,如:"fahr=%d,celsius=%d\n"中的fahr=,celsius=。

3、输入的参数是变量的地址,所以要在变量前面加&。

本回答被网友采纳
第3个回答  推荐于2017-11-24
//这道题关键是把输入3个字符后的回车过滤掉,不然回车就会成为下一组的第一个字符。有两种方法:

//第一种:
#include <stdio.h>

int main()
{
char a,b,c,tmp;
while((a=getchar())!=EOF)
{
b=getchar();
c=getchar();
getchar(); //在录入c后用getchar()滤掉回车
if(a>b)
{
tmp=a;
a=b;
b=tmp;
}
if(a>c)
{
tmp=a;
a=c;
c=tmp;
}
if(b>c)
{
tmp=b;
b=c;
c=tmp;
}
printf("%c %c %c\n",a,b,c);
}
return 0;
}

//第二种:
#include <stdio.h>

int main()
{
char a,b,c,tmp;
while(scanf("%c%c%c%*c",&a,&b,&c)!=EOF) //用"%*c"(空字符,不存储字符的字符)滤掉回车
{
if(a>b) tmp=a,a=b,b=tmp; //逗号表达式,简洁
if(a>c) tmp=a,a=c,c=tmp;
if(b>c) tmp=b,b=c,c=tmp;
printf("%c %c %c\n",a,b,c);
}
return 0;
}本回答被提问者采纳
第4个回答  2016-10-10
public static void main(String []args) {
    Scanner scanner = new Scanner(System.in);
    System.out.println("请输入要排序的字符串,以分号(;)隔开,例如:a;c;b;e;d");
    String inString = scanner.next();

    String []chars = inString.split(";");
    Arrays.sort(chars);

    System.out.print("排序后的结果为:");
    for (String item : chars) {
        System.out.print(item + " ");
    }
}

相似回答