输入n个字符,根据ASCII码值的大小,输出其中ASCII值第二大和第二小的字符
时间: 2024-02-13 07:05:54 浏览: 17
可以使用两个变量来分别记录ASCII码值第二大和第二小的字符。首先输入n个字符,并将第一个字符的ASCII码值赋给这两个变量,然后遍历剩下的字符,根据其ASCII码值与这两个变量的值进行比较,更新这两个变量。以下是示例代码:
```c
#include <stdio.h>
int main() {
int n;
printf("请输入字符个数n:");
scanf("%d", &n);
char c, second_min_char, second_max_char;
int ascii_val, second_min_val, second_max_val;
// 输入第一个字符
printf("请输入第1个字符:");
scanf(" %c", &c);
second_min_char = second_max_char = c;
second_min_val = second_max_val = (int)c;
// 输入剩余的字符
for (int i = 2; i <= n; i++) {
printf("请输入第%d个字符:", i);
scanf(" %c", &c);
ascii_val = (int)c;
if (ascii_val > second_max_val) {
second_min_char = second_max_char;
second_min_val = second_max_val;
second_max_char = c;
second_max_val = ascii_val;
} else if (ascii_val > second_min_val && ascii_val < second_max_val) {
second_min_char = c;
second_min_val = ascii_val;
}
}
// 输出结果
printf("ASCII码值第二小的字符是:%c\n", second_min_char);
printf("ASCII码值第二大的字符是:%c\n", second_max_char);
return 0;
}
```
注意,需要在读取字符时加上一个空格,以消除之前输入的回车符的影响。输出结果中,ASCII码值第二小的字符在前面,ASCII码值第二大的字符在后面。