好难啊c语言让我哭泣

4、定义一个长度为100 的字符数组 char a[100],通过键盘输入一串任意的小写字母构成的字符串(字符总数少于100个),存入数组a中,然后对其中的字母按从小到大的顺序递行排序,并输出排序后的字符串。

供参考:

#include <stdio.h>
int main()
{
    char a[100], t;
    int  i = 0, j, k;
    while ((a[i] = getchar()) && i < 100 && a[i] != '\n') i++;
    a[i] = '\0';
    for (k = i, i = 0; i < k - 1; i++)
    {
        for (j = 0; j < k - 1 - i; j++)
            if (a[j] > a[j + 1])
            {
                t = a[j]; a[j] = a[j + 1]; a[j + 1] = t;
            }
    }
    printf("%s", a);
    return 0;
}

代码如下

#include <stdio.h>
#include <string.h>
int main()
{   
    char arr[100] = {'\0'};
    scanf("%s",&arr); //输入一串字符
    int number = strlen(arr); //数值中有效字符个数,即你输入的字符个数

    //冒泡排序,升序
    for(int i = 0; i < number; ++i) {
        for(int j = 0; j < number - i; ++j) {
            if(arr[j] > arr[j + 1]) { //交换
                char temp = arr[j + 1];
                arr[j + 1] = arr[j];
                arr[j] = temp;
            }
        }
    }
    
    for(int i = 0; i < number + 1; ++i) //打印数组
        printf("%c",arr[i]);
    printf("\n");
    return 0;
}