解题思路:

输入数组

void arrIn(int *arr)

{

for (int i = 0; i < 10; i++)

{

cin >> arr[i];

}

}

初始化最大值最小值下标为0

int maxIndex = 0;

int minIndex = 0;

循环比较求出实践下标

for (int i = 0; i < 10; i++)

{

if (arr[i] >= arr[maxIndex])

maxIndex = i;

if (arr[i] <= arr[minIndex])

minIndex = i;

}

注意事项:

********************************************

当输入数组最大值下标为0时,程序将会先将最小值与下标0交换,此时最大值将被交换至最小值位置。

if (maxIndex == 0)

{

maxIndex = minIndex;

}

*********************************************

进行交换

int temp = arr[minIndex];

arr[minIndex] = arr[0];

arr[0] = temp;

temp = arr[maxIndex];

arr[maxIndex] = arr[9];

arr[9] = temp;

}

输出数组

void arrOut(int *arr)

{

for (int i = 0; i < 10; i++)

{

cout << arr[i]<<" ";

}

}

调用函数

int main()

{

int *arr = new int[10];

arrIn(arr);

arrCalculate(arr);

arrOut(arr);

return 0;

}

完整代码如下:
参考代码:

#include<iostream>

using namespace std;


void arrIn(int *arr)

{

for (int i = 0; i < 10; i++)

{

cin >> arr[i];

}

}


void arrCalculate(int *arr)

{

int maxIndex = 0;

int minIndex = 0;

for (int i = 0; i < 10; i++)

{

if (arr[i] >= arr[maxIndex])

maxIndex = i;

if (arr[i] <= arr[minIndex])

minIndex = i;

}

if (maxIndex == 0)

{

maxIndex = minIndex;

}

int temp = arr[minIndex];

arr[minIndex] = arr[0];

arr[0] = temp;

temp = arr[maxIndex];

arr[maxIndex] = arr[9];

arr[9] = temp;

}


void arrOut(int *arr)

{

for (int i = 0; i < 10; i++)

{

cout << arr[i]<<" ";

}

}


int main()

{

int *arr = new int[10];

arrIn(arr);

arrCalculate(arr);

arrOut(arr);

return 0;

}


点赞(0)
 

0.0分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论