先将输入的一系列整数中的最小值与第一个数交换然后将最大值与最后一个数交换最后输出交换后的序列注意题目保证最大和最小值都是唯一的输入格式输入在第一行中给出一个正整数n小于等于十第二行给出n个整数数字间以空格分隔输出格式在一行中顺序输出交换后的序列每个整数后跟一个空格
时间: 2024-05-22 11:16:17 浏览: 106
#include <stdio.h>
int main()
{
int n, i, min = 1000000, max = -1000000, minIndex, maxIndex, temp;
int nums[10];
scanf("%d", &n);
for (i = 0; i < n; i++)
{
scanf("%d", &nums[i]);
if (nums[i] < min)
{
min = nums[i];
minIndex = i;
}
if (nums[i] > max)
{
max = nums[i];
maxIndex = i;
}
}
temp = nums[0];
nums[0] = nums[minIndex];
nums[minIndex] = temp;
temp = nums[n - 1];
nums[n - 1] = nums[maxIndex];
nums[maxIndex] = temp;
for (i = 0; i < n; i++)
{
printf("%d ", nums[i]);
}
return 0;
}
相关问题
先将输入的一系列整数中的最小值与第一个数交换,然后将最大值与最后一个数交换,最后输出交换后的序列
好的,以下是用中文回复:
首先,我们需要找到输入的一系列整数中的最小值和最大值。可以使用循环遍历整个序列,每次比较当前数和已知的最小值或最大值,更新最小值和最大值。
然后,我们将最小值与第一个数交换,可以使用一个临时变量来实现。将最小值赋值给临时变量,将第一个数赋值给最小值,再将临时变量赋值给第一个数。
接着,将最大值与最后一个数交换,同样可以使用一个临时变量。将最大值赋值给临时变量,将最后一个数赋值给最大值,再将临时变量赋值给最后一个数。
最后,输出交换后的序列即可。
先将输入的一系列整数中的最小值与第一个数交换,然后将最大值与最后一个数交换,最后输出交换后的序列。
好的,您想实现的功能是将输入的一系列整数中的最小值与第一个数交换,然后将最大值与最后一个数交换,最后输出交换后的序列。以下是C++实现的代码:
```c++
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main()
{
vector<int> nums;
int n;
while (cin >> n)
{
nums.push_back(n);
}
int minIdx = 0, maxIdx = nums.size() - 1;
for (int i = 1; i < nums.size(); i++)
{
if (nums[i] < nums[minIdx])
{
minIdx = i;
}
if (nums[i] > nums[maxIdx])
{
maxIdx = i;
}
}
swap(nums[0], nums[minIdx]);
swap(nums[nums.size() - 1], nums[maxIdx]);
for (int i = 0; i < nums.size(); i++)
{
cout << nums[i] << " ";
}
cout << endl;
return 0;
}
```
该代码通过不断读入输入的整数,将其存储在一个vector中。然后使用一个循环来找到最小值和最大值的下标,再通过swap函数交换对应的数值。最后输出交换后的序列。
阅读全文