奶味凹凸曼 发表于 2023-6-9 11:14:35

排序问题

从键盘上任意输入三个字符,按照从小到大排序,
样例输入:a,6,K
样例输出:6 K a

isdkz 发表于 2023-6-9 11:16:07

这是一个简单的C语言问题,首先需要输入三个字符,然后对它们进行排序。请注意,在ASCII编码中,数字字符的值小于大写字母,大写字母的值小于小写字母。所以你的输入样例的输出应该是 "6, K, a"。

这是一个使用C语言实现的解决方案:

#include <stdio.h>

void sort(char arr[], int n) {
    char temp;
    for(int i = 0; i < n; i++) {
      for(int j = i+1; j < n; j++) {
            if(arr < arr) {
                temp = arr;
                arr = arr;
                arr = temp;
            }
      }
    }
}

int main() {
    char arr;
    printf("请输入三个字符:\n");
    for(int i = 0; i < 3; i++) {
      scanf(" %c", &arr); // 注意前面有一个空格,这样scanf会自动忽略前面的空白符(包括'\n')
    }
    sort(arr, 3);
    printf("从小到大排序后的字符是:\n");
    for(int i = 0; i < 3; i++) {
      printf("%c ", arr);
    }
    return 0;
}


运行此代码,用户被提示输入三个字符,然后程序会对字符进行从小到大的排序,并将结果输出。

zhangjinxuan 发表于 2023-6-9 12:45:28

楼上的代码存在一些问题,没有按照正确的格式进行输入,下面是修改后的代码:
#include <stdio.h>

void sort(char arr[], int n) {
    char temp;
    for(int i = 0; i < n; i++) {
      for(int j = i+1; j < n; j++) {
            if(arr < arr) {
                temp = arr;
                arr = arr;
                arr = temp;
            }
      }
    }
}

int main() {
    char arr;
    printf("请输入三个字符:\n");
    scanf("%c,%c,%c", &arr, &arr, &arr);
    sort(arr, 3);
    printf("从小到大排序后的字符是:\n");
    for(int i = 0; i < 3; i++) {
      printf("%c ", arr);
    }
    return 0;
}

212741 发表于 2023-6-10 10:49:01

python
chars = input().split(',') # 获取输入的三个字符
sorted_chars = sorted(chars) # 对三个字符进行排序
print(' '.join(sorted_chars)) # 输出结果
页: [1]
查看完整版本: 排序问题