输入三个字符后,按各字符的ASCII码从小到大的顺序输出这三个字符。
Input
输入数据有多组,每组占一行,有三个字符组成,之间无空格。
Output
对于每组输入数据,输出一行,字符中间用一个空格分开。
写了两个代码=-=都有错误。。。
第一个:
#include<stdio.h>
int main()
{
char a,b,c;
while(scanf("%c%c%c",&a,&b,&c)!=EOF)
{
if((a<b)&&(b<c))
printf("%c %c %c",a,b,c);
if((a<c)&&(c<b))
printf("%c %c %c",a,c,b);
if((b<a)&&(a<c))
printf("%c %c %c",b,a,c);
if((b<c)&&(c<a))
printf("%c %c %c",b,c,a);
if((c<a)&&(a<b))
printf("%c %c %c",c,a,b);
if((c<b)&&(b<a))
printf("%c %c %c",c,b,a);
}
return 0;
}
第二个
#include<stdio.h>
int main()
{
char a,b,c,temp;
while(scanf("%c%c%c",&a,&b,&c)!=EOF)
{
if(b>a)
{temp=a;
a=b;
b=temp;}
if(c>b)
{temp=c;
c=b;
b=temp;}
if(b>a)
{temp=a;
a=b;
b=temp;}
printf("%c %c %c",a,b,c);
}
return 0;
}
两个都错。错哪里了。。。
#include"stdio.h"
charmax(chara,charb)
{
if(a>b)
{
returna;
}
else
{
returnb;
}
}
charmin(chara,charb)
{
if(a<b)
{
returna;
}
else
{
returnb;
}
}
intmain(intargc,charconst*argv[])
{
charc0,c1,c2,c3,c4,c5,c6,c7;
printf("Pleaseinputnum:\n");
scanf("%c%c%c",&c0,&c1,&c2);
c3=max(c0,c1);
c4=max(c3,c2);
c5=min(c0,c1);
c6=min(c5,c2);
c7=c0+c1+c2-c4-c6;
printf("%c%c%c\n",c4,c7,c6);
return0;
}
printf()用法:
printf()函数是格式化输出函数,一般用于向标准输出设备按规定格式输出信息。在编写程序时经常会用到此函数。函数的原型为:
int printf(const char*format,...);函数返回值为整型。若成功则返回输出的字符数,输出出错则返回负值。
printf()函数的调用格式为:
printf("<格式化字符串>;",<参量表>);其中格式化字符串包括两部分内容:
一部分是正常字符,这些字符将按原样输出;
另一部分是格式化规定字符,以"%"开始,后跟一个或几个规定字符,用来确定输出内容格式。
参量表是需要输出的一系列参数,其个数必须与格式化字符串所说明的输出;参数个数一样多,各参数之间用","分开,且顺序一一对应,否则将会出现意想不到的错误。
规定符
%d十进制有符号整数
%u十进制无符号整数
%f浮点数
%s字符串
%c单个字符
%p指针的值
%e指数形式的浮点数
%x,%X无符号以十六进制表示的整数
%o无符号以八进制表示的整数
%g把输出的值按照%e或者%f类型中输出长度较小的方式输出
%p输出地址符
%lu 32位无符号整数
%llu 64位无符号整数
谢谢
改动完后的确通过了
但是能解释一下为什么吗。。。
回车也是字符,它会把回车给读进去,加了空格就可避免
本回答被提问者和网友采纳