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]);
}

输出结果不对呀
最新回答
半袖桃花

2025-03-30 01:18:45

#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了
つ收回你的爱み

2025-03-30 03:42:12

#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]);
}
夏日梧桐雨

2025-03-30 08:27:02

输出换成
printf("%c",...)
╭⌒浅浅笑

2025-03-30 01:12:48

#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了