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

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

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void sort(char c[3]){
	char t;
    int i,j;
	scanf("%c%c%c%*c",&c[0],&c[1],&c[2]);
	for (i=0;i<2;i++) {
            for (j=0;j<2-i; j++) {
                if (c[j]>c[j+1]) {
                    t = c[j];
                    c[j] = c[j+1];
                    c[j+1] = t;
                }
            }
        }
	}
int main(){
	char s1[3],s2[3],s3[3];
	sort(s1);
	sort(s2);
	sort(s3);
	printf("%c %c %c\n",s1[0],s1[1],s1[2]);
	printf("%c %c %c\n",s2[0],s2[1],s2[2]);
	printf("%c %c %c\n",s3[0],s3[1],s3[2]);
}

知道用的方法比较jue(方言,方言,因为实在想不出来更合适的了~),但是,在做的过程中遇到的问题,总觉得还是值得记录下的。

  • %*d,%*c,%*f 作用:在输入或输出时,跳过一个变量,d当然就是整型啦,c是char型,f是float型
    刚开始的时候我的输入语句是
 scanf("%c%c%c",&c[0],&c[1],&c[2]);

在这里插入图片描述
因为这个地方我需要先输入每个数组的值,然后再进行排序输出。但是,我的输出结果很明显将回车字符也作为数组元素了,因为每次我都以回车作为结束表示,所以我将回车跳过,也就是%*c,完美实现,哈哈,开心!

猜你喜欢

转载自blog.csdn.net/zhengmmm1999/article/details/84202264