vc++相关数组问题

vc++相关数组问题以及其源代码……vc++相关题目……谢谢了……

  1. img

img

代码如下:


#include <iostream>
using namespace std;
int main()
{
    int a[3][4], i, j, max, min;
    int maxi = 0, maxj = 0, mini = 0, minj = 0; //最大值和最小值所在的下标
    cout << "请输入3*4的整型二维数组:" << endl;
    for (i = 0; i < 3; i++)
    {
        for (j = 0; j < 4; j++)
        {
            cin >> a[i][j];
            //输入的同时,找出最大值及其下标、最小值及其下标
            if (i == 0 && j == 0)
            {
                max = a[0][0];
                min = a[0][0];
            }
            if (a[i][j] > max)
            {
                max = a[i][j];
                maxi = i;
                maxj = j;
            }
            if (a[i][j] < min)
            {
                min = a[i][j];
                mini = i;
                minj = j;
            }
        }
    }
    //输出原数组
    cout << "原数组:" << endl;
    for (i = 0; i < 3; i++)
    {
        for (j = 0; j < 4; j++)
            cout << a[i][j] << " ";
        cout << endl;
    }

    //交换位置
    //最大值放在左上角
    a[maxi][maxj] = a[0][0];
    a[0][0] = max; 

    //最小值放在右下角,需要判断一下,最小值是否再原来的0,0处,如果再0,0处,那么就需要更新位置,因为0,0已经发生变化
    if (mini == 0 && minj == 0)
    {
        mini = maxi;
        minj = maxj;
    }
    a[mini][minj] = a[2][3]; //右下角
    a[2][3] = min;

    //输出变换后的数组
    cout << "变换后的数组:" << endl;
    for (i = 0; i < 3; i++)
    {
        for (j = 0; j < 4; j++)
            cout << a[i][j] << " ";
        cout << endl;
    }
    return 0;
}

双重循环找到最大值与a[0][0]交换,再双重循环找到最小值与a[2][3]交换

你题目的解答代码如下:

#include <iostream>
using namespace std;

int main()
{
    int a[3][4] = {
        {5,6,11,6},
        {4,9,2,7},
        {1,6,15,2},
    };
    int i,j,*min,*max,t;
    for (i = 0; i < 3; i++)
    {
        for (j = 0; j < 4; j++)
        {
            cout << a[i][j] << " ";
        }
        cout << endl;
    }
    max = &a[0][0];
    for (i = 0; i < 3; i++)
    {
        for (j = 0; j < 4; j++)
        {
            if (*max < a[i][j])
                max = &a[i][j];
        }
    }
    t = a[0][0];
    a[0][0] = *max;
    *max = t;

    min = &a[0][0];
    for (i = 0; i < 3; i++)
    {
        for (j = 0; j < 4; j++)
        {
            if (*min > a[i][j])
                min = &a[i][j];
        }
    }
    t = a[2][3];
    a[2][3] = *min;
    *min = t;

    cout << endl;
    for (i = 0; i < 3; i++)
    {
        for (j = 0; j < 4; j++)
        {
            cout << a[i][j] << " ";
        }
        cout << endl;
    }

    return 0;
}

如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

img

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632