解题思路:
先用数组拿到10个数
找出10个数中的最大值与最小值
把最大值与最小值的值和下标存储起来
与第一个数和最后一个数交换即可
注意事项:
要注意的是,此题为交换第一个数和最小值,交换最后一个数和最大值,并不是排序
参考代码:
#include<iostream>
using namespace std;
void dfs(int a[])
{
int max = 0;//定义最大值
int min = 10;//定义最小值
int temp1 = 0;//定义中间值纪录最小值下标
int temp2 = 0;//定义中间值纪录最大值下标
for (int i = 0; i < 10; i++)
{
if (a[i] < min)
{
min = a[i];//拿到最小值
temp1 = i;//拿到最小值下标
}
}
int temp3 = a[0];//以下三行为交换函数,交换最小值与第一个数
a[0] = min;
a[temp1] = temp3;
for (int j = 9; j >= 0; j--)
{
if (a[j] > max)
{
max = a[j];//拿到最大值
temp2 = j;//拿到最大值下标
}
}
int temp4 = a[9];//以下三行为交换函数,交换最大值与最后一个数
a[9] = max;
a[temp2] = temp4;
for (int i = 0; i < 10; i++)//输出函数
{
cout << a[i] << " ";
}
}
int main()
{
int a[10];
for (int i = 0; i < 10; i++)//读取10个数字
{
cin >> a[i];
}
dfs(a);//调用排序函数
return 0;
}
0.0分
0 人评分