用C语言完成:对读入的字符用选择法按从大到小的顺序重新排列输出。 从键盘读入一个字母,统计该字母出现的次数,如果统计过程中遇到大写字母则不算到统计次数中,如果统计过程中遇到数字则中止统计并给出提示“有数字混入到数组中”,如果遍历数组也没找到该字母,则提示“没有这个字母”。
时间: 2023-05-26 16:01:44 浏览: 83
A:
```c
#include <stdio.h>
int main() {
// 输入
char arr[100];
int n = 0;
printf("请输入字符,以回车结束:\n");
while (1) {
char c = getchar();
if (c == '\n') {
break;
}
if (c >= 'A' && c <= 'Z') {
continue;
}
if (c >= '0' && c <= '9') {
printf("有数字混入到数组中\n");
return 0;
}
arr[n++] = c;
}
// 选择排序
for (int i = 0; i < n - 1; i++) {
int max_idx = i;
for (int j = i + 1; j < n; j++) {
if (arr[j] > arr[max_idx]) {
max_idx = j;
}
}
char temp = arr[i];
arr[i] = arr[max_idx];
arr[max_idx] = temp;
}
// 输出
printf("按从大到小排序后的字符为:\n");
int count = 0;
char c = getchar(); // 将之前读入的换行符吃掉
c = getchar();
while (c != '\n') {
if (c == arr[count]) {
count++;
}
putchar(c);
c = getchar();
}
if (count == n) {
printf("\n排序结果已正确输出\n");
} else if (count == 0) {
printf("没有这个字母\n");
} else {
printf("\n字符排序结果有误\n");
}
return 0;
}
```
阅读全文