5. 录入成绩,连续输入,不符合0-100输出输入错误,逆序输出最小两个,正序输出最大两个,用空格隔开,数据少于四个输出数据不足
时间: 2024-03-12 17:46:42 浏览: 14
好的,下面是 Python 实现该功能的代码:
```
scores = []
for i in range(5):
s = input("请输入第{}个成绩:".format(i+1))
if s.isdigit() and 0 <= int(s) <= 100:
scores.append(int(s))
else:
print("输入错误!")
exit()
if len(scores) < 4:
print("数据不足!")
else:
sorted_scores = sorted(scores)
print("最小的两个成绩(倒序):", sorted_scores[:2][::-1])
print("最大的两个成绩(正序):", sorted_scores[-2:])
```
该代码首先定义了一个空列表 `scores`,然后循环 5 次,每次输入一个成绩,如果输入的不是数字或者不在 0-100 范围内,就输出错误信息并退出程序,否则将该成绩加入到列表中。
接着,如果列表中的元素个数小于 4,则输出数据不足的提示信息,否则对列表进行排序,输出最小的两个成绩(倒序)和最大的两个成绩(正序)。
相关问题
定义两个字符数组,输入字符串,再逆序输出
好的,可以使用以下代码定义两个字符数组,输入字符串,并逆序输出:
```c++
#include <iostream>
#include <cstring>
using namespace std;
int main() {
char arr1[100], arr2[100];
cout << "请输入第一个字符串:";
cin >> arr1;
cout << "请输入第二个字符串:";
cin >> arr2;
cout << "第一个字符串逆序输出为:";
for(int i = strlen(arr1) - 1; i >= 0; i--) {
cout << arr1[i];
}
cout << endl;
cout << "第二个字符串逆序输出为:";
for(int i = strlen(arr2) - 1; i >= 0; i--) {
cout << arr2[i];
}
cout << endl;
return 0;
}
```
在以上代码中,我们使用了 `<cstring>` 头文件中的 `strlen()` 函数来获取字符串的长度,然后使用 for 循环逆序输出每个字符。需要注意的是,如果字符串中包含空格等空白字符,使用 `cin` 读入会截断字符串,可以使用 `getline()` 函数来输入整行字符串。
循环结构习题:输入两个整数,输出它们的最大公约数
算法思路:
- 循环从小到大遍历两个数中的较小值,从最大的可能性开始递减
- 检查较小值和较大值是否都能被当前遍历到的数整除
- 若是,则当前数即为最大公约数,输出后退出循环
Python代码:
```python
a = int(input("请输入第一个整数:"))
b = int(input("请输入第二个整数:"))
if a > b:
a, b = b, a # 交换两个变量,让 a 存储较小值
for i in range(a, 0, -1): # 从 a 开始逆序遍历,步长为 -1
if a % i == 0 and b % i == 0:
print(a, "和", b, "的最大公约数是:", i)
break
```
示例输出:
```
请输入第一个整数:12
请输入第二个整数:18
12 和 18 的最大公约数是: 6
```