【发布时间】:2021-01-15 18:17:37
【问题描述】:
如何交换数组的最大和最后一个元素?
我想写一个程序,请求自然数NN(不超过100),从各种数的NN进一步序列,改变最后一个元素和最大值的位置,保持其他元素不变,并推导出接收到的数组.
示例输入 1:
8
3 6 12 1 7 19 25 4
样本输出 1:
3 6 12 1 7 19 4 25
这是我尝试过的:
#include <iostream>
using namespace std;
int main()
{
int i,arr[100],n;
cin>>n;
int imin=0;
for (int i=0; i<n; i++){cin>>arr[i];}
int max=0;
for (i=1;i<n;i++)
{
if (arr[i]>arr[max])
max=i;
int tmp=arr[max];
arr[max]=arr[n-1];
arr[n-1]=tmp;
for (i=0;i<n;i++)
cout <<arr[i]<< " ";
cout << "\n";
}
return 0;
}
它不会改变最大和最后的位置。我该怎么做?
【问题讨论】:
-
如果
n输入大于100会怎样? -
修复缩进应该更容易发现问题。
-
有人真的不喜欢我们的回答 :-)
-
-
@TedLyngmo 这并没有使答案没有用,而是妨碍了一个糟糕的问题被删除。否决这些问题的答案是官方不赞成的,但不幸的是相对普遍的做法。
标签: c++