本题要求编写程序,先将输入的一系列整数中的最小值与第一个数交换,然后将最大值与最后一个数交换,最后输出交换后的序列。
注意:题目保证最大和最小值都是唯一的。
输入格式:
输入在第一行中给出一个正整数N(≤10),第二行给出N个整数,数字间以空格分隔。
输出格式:
在一行中顺序输出交换后的序列,每个整数后跟一个空格。
输入样例:
5
8 2 5 1 4
输出样例:
1 2 5 4 8
这题想了很久,脑子没转过弯来(汗颜)
解题思路:标记数组
具体思路看代码,写在注释里面了
(初学者,请各位大佬提出意见,感谢!)
上代码!
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int n;
cin >> n;
int arr[10];
int min, max, minn=0, maxx=0;
//输入数组
for (int i = 0; i < n; i++)
{
cin >> arr[i];
};
min = arr[0];
//交换小
for (int j = 0; j < n; j++)
{
if (min > arr[j])
{
min = arr[j];
minn = j;
}
}
int temp = 0;
temp = arr[0];
arr[0] = arr[minn];
arr[minn] = temp;
//输出数组
//交换大
max = arr[0];
for (int k = 0; k < n; k++)
{
if (max< arr[k])
{
max = arr[k];
maxx = k;
}
}
temp = arr[n-1];
arr[n-1] = arr[maxx];
arr[maxx] = temp;
for (int a = 0; a < n; a++)
{
cout << arr[a] << " ";
};
return 0;
}
该博客介绍了如何使用C++编程解决PTA题目的问题,内容包括题目要求、输入输出格式以及解题思路。博主分享了通过标记数组的方法找出序列中的最小值和最大值,并进行交换的操作,以达到题目所要求的效果。代码中包含详细注释,适合初学者学习和讨论。
2560

被折叠的 条评论
为什么被折叠?



