C语言 代码 请问这道题怎么做?输入三个字母,按字母表顺序输出这三个字母。

题目描述

输入三个字母,按字母表顺序输出这三个字母。
输入

三个字母
输出

按字母表顺序输出
样例输入

cba
样例输出

abc

#include<stdio.h>

int main()
{
    char c[4],n[4];
    int c1,c2,c3,i,*cp;
    aa: printf("连续输入3个字母(不要间隔):");
    fflush(stdin);
    scanf("%s",c);
    for(i=0;i<3;i++)
    {
        if(i==0)
        {
            cp=&c1;
        }
        if(i==1)
        {
            cp=&c2;
        }
        if(i==2)
        {
            cp=&c3;
        }
        if((c[i]>=65 && c[i]<=90))
        {
            *cp=c[i];
        }
        else if(c[i]>=97 && c[i]<=122)
        {
            *cp=c[i]-32;
        }
        else
        {
            printf("%s不都是字母,必须输入字母,重新输入\n\n\n\n",c);
            goto aa;
        }
    }
    if(c2>=c1 && c3>=c1)
    {
        n[0]=c[0];
        if(c3>c2)
        {
            n[1]=c[1];
            n[2]=c[2];
        }
        else
        {
            n[1]=c[2];
            n[2]=c[1];
        }
    }
    if(c1>=c2 && c3>=c2)
    {
        n[0]=c[1];
        if(c3>c1)
        {
            n[1]=c[0];
            n[2]=c[2];
        }
        else
        {
            n[1]=c[2];
            n[2]=c[0];
        }
    }
    if((c1>=c3 && c2>=c3))
    {
        n[0]=c[2];
        if(c2>c1)
        {
            n[1]=c[0];
            n[2]=c[1];
        }
        else
        {
            n[1]=c[1];
            n[2]=c[0];
        }
    }
    printf("按照字母顺序排列:%c,%c,%c  \n\n\n\n",n[0],n[1],n[2]);
    goto aa;
    return 0;
}

功能:输入验证,大小写识别,按照ASCII码顺序排列

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-11-13
{char a,b,c,t;scanf("%c%c%c",&a,&b,&c);//注意输入没有空格的,直接就这3个字母if (a>b) {t=a;a=b;b=t;}if (a>c) {t=a;a=c;c=t;}if (b>c) {t=c;c=b;b=t;}printf("%c %c %c\n",a,b,c);return 0;}
相似回答