编程论坛
注册
登录
编程论坛
→
C++教室
大佬求解
陈钟
发布于 2018-05-28 23:09, 1830 次点击
编写main函数和一个子函数(子函数带int *参数),在main函数中读入一个整数数组(数组大小自定义),通过传地址方式把数组传递给子函数处理,子函数的功能是把数组的最大值元素和第一个元素交换。在main函数中输出处理完成后的数组。[
7 回复
#2
林月儿
2018-05-28 23:45
程序代码:
#include
<iostream>
#include
<algorithm>
#include
<iterator>
using
namespace
std;
void
change(
int
*arr,
int
n){
int
max=*max_element(arr,arr+n);
for
(
int
i=
0
;i<n;i++)
if
(max==arr[i]){
arr[i]=arr[
0
];
arr[
0
]=max;
break
;
}
}
int
main() {
int
n[]={
1
,
4
,
22
,
3
,
8
,
35
};
change(n,
6
);
copy(n,n+
6
,ostream_iterator<
int
>(
cout
,
"
,
"
));
return
0
;
}
#3
陈钟
2018-05-29 10:59
回复 2楼 林月儿
谢谢
#4
rjsp
2018-05-29 12:12
在 林月儿 的基础上,改了一点点
程序代码:
#include
<iostream>
#include
<algorithm>
#include
<iterator>
using
namespace
std;
void
change_maxvalue_to_top(
int
* arr, size_t n )
//
按照C++风格,这里参数列表应该是( int* first, int* last )
{
if
( n !=
0
)
iter_swap( arr, max_element(arr,next(arr,n)) );
}
int
main(
void
)
{
int
arr[] = {
1
,
4
,
22
,
3
,
8
,
35
};
change_maxvalue_to_top( arr, size(arr) );
copy( begin(arr), end(arr), ostream_iterator<decltype(*arr)>(
cout
,
"
,
"
) );
}
#5
林月儿
2018-05-29 21:55
回复 4楼 rjsp
这方面您是专家,我这个c++入门都不算
#6
Jonny0201
2018-05-29 22:06
回复 5楼 林月儿
能用 STL 应该起码入门了
哈哈哈哈
#7
林月儿
2018-05-29 22:09
回复 6楼 Jonny0201
网上搜的,哈哈,一直学的java,有机会好好学下这个
1