用c语言从键盘上输入最多100个比较小的整数,以Ctrl+Z结束,输出其中的最大值和最小值。输出格式为max = 6, min = 1。
时间: 2024-09-20 10:06:15 浏览: 42
在C语言中,你可以通过循环读取用户的输入,并在遇到Ctrl+Z字符时停止输入。然后对输入的整数进行排序找到最大值和最小值。下面是一个简单的示例程序:
```c
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
int main() {
int input, max_value = INT_MIN, min_value = INT_MAX;
bool end_of_input = false;
while (!end_of_input) {
printf("请输入一个整数(或按Ctrl+Z结束):");
scanf("%d", &input);
if (input == EOF && ferror(stdin)) {
perror("Error reading input");
return 1;
}
max_value = input > max_value ? input : max_value;
min_value = input < min_value ? input : min_value;
// 检查是否接收到Ctrl+Z
if (input == -1 && feof(stdin))
end_of_input = true;
}
printf("max = %d, min = %d\n", max_value, min_value);
return 0;
}
```
在这个程序中,我们首先初始化最大值和最小值为`INT_MIN`和`INT_MAX`,表示未输入数据前的假设。然后在一个无限循环中,用户每输入一个整数就更新这两个变量。当用户按下Ctrl+Z并回车后,`scanf()`函数会返回EOF(-1),同时`feof(stdin)`检测到文件结束标志,这时我们就认为输入已结束。
如果在此过程中发生了错误,如输入流错误,我们会捕获异常并退出程序。
阅读全文