输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个对换(c++编译程序)

2025-06-20 08:49:22
推荐回答(3个)
回答1:

#include 
using namespace std;
int main(int argc, char *argv[])
{
int array[10] = {6,5,0,1,8,9,7,2,4,3};
int min,max,p_min,p_max,temp;

cout<<"交换前:"; 
for(int i = 0;i < 10;i++)
{
cout< }
cout<  
for(int k = 0;k < 2;k++)
{
if(k == 0) //第一次比较找出最小数 
{
min = array[0];
for(int i = 1;i <= 9;i++)
{
if(min > array[i])
{
min = array[i];
p_min = i; //记录最小数位置 
}
}
}
else //第二次比较找出最大数 
{
max = array[0];
for(int i = 1;i <= 9;i++)
{
if(max < array[i])
{
max = array[i];
p_max = i; //记录最大数位置 
}
}
}
}

cout<<"min="< cout<<"max="<
if(p_min != 0)
{
temp = array[p_min];
array[p_min] = array[0];
array[0] = temp;

if(p_max != 9)
{
temp = array[p_max];
array[p_max] = array[9];
array[9] = temp;
}

cout<<"交换后:";
for(int i = 0;i < 10;i++)
{
cout< }
cout<  
return 0;
}

运行结果:

回答2:

给思路吧 用一个数组存输入的10个数,然后循环数组得到最大值和最小值的位置(即数字下标),然后做两数交换就可以了之后在重新输出

回答3:

#include
using namespace std;
int main()
{
    int a[10],min=0,max=0;
    for(int i=0;i<10;i++)
    {
        cin >> a[i];
        if (a[min] > a[i]) min=i;
        if (a[max] < a[i]) max=i;
    }
    int b=a[min];
    a[min]=a[0];
    a[0]=b;
    b=a[max];
    a[max]=a[9];
    a[9]=b;
    for(int i=0;i<10;i++)
        cout << a[i] << ' ';
    return 0;
}