c语言。输入三个字符,输出三个字符对应ascii码的大小,从大到小排

#include<stdio.h>
void main()
{
char a[3];
int i;
scanf("%c %c %c",&a[0],&a[1],&a[2]);
for(i=0;i<2;i++)
if (a[i]>a[i+1]){
int temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;
}
for(i=0;i<3;i++)
printf("%d ",a[i]);
}

输出结果不对呀

#include<stdio.h>
void main()
{
char a[3];
int i,j;
scanf("%c %c %c",&a[0],&a[1],&a[2]);
for(i=0;i<3;i++){
for(j=i;j<3;j++)
{
if (a[i]<a[j])
{
char temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
for(i=0;i<3;i++)
printf("%d ",a[i]);
}
用冒泡法来做。如果你只有三个输入的话,完全没必要用这么复杂的for循环,直接用三个char类型的变量,来比较久OK了
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-01-06
#include<stdio.h>
void main()
{
char a[3];
int i;
scanf("%c %c %c",&a[0],&a[1],&a[2]);
for(i=0;i<2;i++)
if (a[i]<a[i+1]){ //改为小于号
int temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;
}
for(i=0;i<3;i++)
printf("%c ",a[i]);
}本回答被网友采纳
第2个回答  2015-01-06
输出换成
printf("%c",...)

第3个回答  2019-12-30
#include<stdio.h>
void
main()
{
char
a[3];
int
i,j;
scanf("%c
%c
%c",&a[0],&a[1],&a[2]);
for(i=0;i<3;i++){
for(j=i;j<3;j++)
{
if
(a[i]<a[j])
{
char
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
for(i=0;i<3;i++)
printf("%d
",a[i]);
}
用冒泡法来做。如果你只有三个输入的话,完全没必要用这么复杂的for循环,直接用三个char类型的变量,来比较久OK了
相似回答