vc++相关数组问题以及其源代码……vc++相关题目……谢谢了……
代码如下:
#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;
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!