从标准输入依次读入给定若干个在 int 范围内的整数,请编程将他们按照读入顺序的倒序输出。
时间: 2024-12-15 07:25:49 浏览: 2
要实现这个功能,你可以使用C++中的`std::cin`和`std::vector`容器来存储输入的整数,然后利用`reverse`算法或自定义循环倒序输出。这里是一个简单的示例:
```cpp
#include <iostream>
#include <vector>
int main() {
std::vector<int> numbers;
// 从标准输入读取整数
int input;
while (std::cin >> input) {
numbers.push_back(input); // 将每个整数添加到vector中
}
// 倒序输出整数
for (int i = numbers.size() - 1; i >= 0; i--) {
std::cout << numbers[i] << " ";
}
std::cout << "\n";
return 0;
}
```
这段代码首先创建了一个空的`std::vector<int>`,然后不断地从标准输入(`std::cin`)读入整数并添加到这个vector中。接着,它使用一个for循环从vector的末尾开始遍历,逐个输出元素。
相关问题
用C语言实现:从标准输入依次读入给定若干个在int范围内的整数,请编程将他们按照读入顺序的倒序输出
在C语言中,你可以使用动态内存分配和指针来实现这个功能。这里是一个简单的示例程序:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_NUMS 100 // 设置一个最大整数数量
// 函数声明
void reverse(int* arr, int size);
int main() {
int nums[MAX_NUMS]; // 存放输入整数的数组
int num, i;
printf("请输入一些在int范围内的整数,输入-1结束:\n");
for (i = 0; i < MAX_NUMS && scanf("%d", &num) == 1; i++) {
if (num != -1) { // 避免除1操作
nums[i] = num;
} else {
break;
}
}
// 确保有足够的空间存储所有输入
reverse(nums, i); // 调用函数反转数组
for (i = 0; i < i; i++) {
printf("%d ", nums[i]);
}
printf("\n"); // 输出结果
return 0;
}
// 反转数组的函数
void reverse(int* arr, int size) {
int start = 0, end = size - 1;
while (start < end) {
int temp = arr[start];
arr[start] = arr[end];
arr[end] = temp;
start++;
end--;
}
}
```
在这个程序中,我们首先从用户那里读取整数直到遇到-1(作为停止输入的标志),然后调用`reverse`函数将数字倒序排列,最后输出它们。
递归:从标准输入依次读入给定若干个在int范围内的整数,请编程将它们按照读入顺序的倒序输出
递归是一种解决问题的技术,它通过函数自身调用自身来解决更小规模的同类问题,直到达到基本情况为止。对于这个需求,你可以编写一个简单的Python程序来实现整数输入的逆序打印。这里是一个递归版本的例子:
```python
def reverse_print(numbers, index=0):
# 基本情况:当索引等于列表长度时,表示已经处理完所有数字
if index == len(numbers):
return
else:
# 打印当前元素,然后对剩余元素递归调用
print(numbers[index], end=" ")
reverse_print(numbers, index + 1)
# 示例:从标准输入读取整数
input_numbers = list(map(int, input("请输入一组整数,以空格分隔:").split()))
# 调用函数进行逆序打印
reverse_print(input_numbers)
```
当你运行这个程序并输入一些整数后,它会按输入顺序的相反顺序打印出来。
阅读全文