从键盘输入10个字符,接照字典顺序将其排序输出二维字符数组。(C语言)
时间: 2024-12-22 12:28:22 浏览: 5
在C语言中,你可以使用`scanf`函数获取用户输入的10个字符,然后利用字符串处理函数如`strcmp`对字符进行比较并存储到二维字符数组中。这里是一个简单的示例:
```c
#include <stdio.h>
#include <string.h>
#define ROWS 2 // 定义二维数组的行数
#define COLS 5 // 定义二维数组的列数
char arr[ROWS][COLS]; // 定义二维字符数组
void sortAndPrint(char str[]) {
int i, j, minIndex;
for (i = 0; i < ROWS * COLS - 1; i++) { // 遍历数组元素
minIndex = i;
for (j = i + 1; j < ROWS * COLS; j++) { // 比较元素值
if (str[j] < str[minIndex]) {
minIndex = j;
}
}
if (minIndex != i) { // 如果找到更小的元素,则交换位置
char temp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = temp;
}
}
}
int main() {
int count = 0;
while (count < 10) { // 获取10个字符
getchar(); // 清除前一个字符的影响,防止回车显示
char input[2];
scanf("%s", input);
arr[count / COLS][count % COLS] = input[0]; // 存储字符到二维数组
count++;
}
// 对二维数组进行排序
for (int i = 0; i < ROWS; i++) {
sortAndPrint(arr[i]);
}
// 输出排序后的二维数组
printf("按字典序排列后的二维数组:\n");
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
printf("%c ", arr[i][j]);
}
printf("\n");
}
return 0;
}
阅读全文