从键盘输入1系列的整数(不包括0),以0结束,求这组数中的最大值和最小值。
时间: 2024-06-12 22:06:57 浏览: 11
算法如下:
1. 定义变量max和min,分别表示最大值和最小值,初值为第一个输入的非0整数。
2. 循环读入整数,如果输入的数为0则退出循环。
3. 每次读入一个数,与max和min比较,如果比max大则更新max,如果比min小则更新min。
4. 循环结束后,输出max和min的值。
代码如下:
```python
max = int(input("请输入非0整数:"))
min = max
while True:
num = int(input("请输入非0整数(以0结束):"))
if num == 0:
break
if num > max:
max = num
if num < min:
min = num
print("最大值为:", max)
print("最小值为:", min)
```
示例输出:
```
请输入非0整数:5
请输入非0整数(以0结束):-3
请输入非0整数(以0结束):8
请输入非0整数(以0结束):4
请输入非0整数(以0结束):-1
请输入非0整数(以0结束):0
最大值为: 8
最小值为: -3
```
相关问题
从键盘输入一系列的整数(不包括0),以0结束,求这组数中的最大值和最小值。c++
以下是求解最大值和最小值的C代码:
```c
#include <stdio.h>
int main() {
int n, max = -2147483647, min = 2147483647; // 初始化最大值和最小值
scanf("%d", &n);
while (n != 0) { // 当输入的数不为0时,循环继续
if (n > max) {
max = n; // 更新最大值
}
if (n < min) {
min = n; // 更新最小值
}
scanf("%d", &n);
}
printf("最大值为 %d,最小值为 %d", max, min);
return 0;
}
```
代码思路:
1. 定义变量 `n`,`max` 和 `min`,其中 `max` 和 `min` 初值分别设为 `int` 类型的最小值和最大值,以保证任何输入的数都会更新它们。
2. 使用 `scanf` 从键盘输入一个整数。
3. 使用一个 `while` 循环,只要输入的数不为0,就继续循环。
4. 在循环中,判断输入的数是否大于最大值 `max`,如果是,则更新 `max`。
5. 判断输入的数是否小于最小值 `min`,如果是,则更新 `min`。
6. 重新使用 `scanf` 从键盘输入一个整数,继续循环。
7. 当输入的数为0时,跳出循环,输出最大值和最小值。
注意:本代码中的最大值和最小值不包含输入的0。
从键盘上输入若干个整数,以0结束,求这组数中的最大值和最小值,并求出其中的正数之和。
算法步骤:
1. 声明变量max为最大值,min为最小值,sum为正数之和,num为输入的数。
2. 从键盘输入第一个数num。
3. 当num不等于0时,执行以下操作:
1) 如果num大于max,则将max更新为num。
2) 如果num小于min,则将min更新为num。
3) 如果num大于0,则将sum加上num。
4) 继续从键盘输入下一个数num。
4. 输出max、min和sum。
代码实现:
```python
max = float('-inf') # 初始最大值为负无穷大
min = float('inf') # 初始最小值为正无穷大
sum = 0 # 初始正数之和为0
num = int(input("请输入一个整数:"))
while num != 0:
if num > max:
max = num
if num < min:
min = num
if num > 0:
sum += num
num = int(input("请输入一个整数:"))
print("最大值为:", max)
print("最小值为:", min)
print("正数之和为:", sum)
```