问题标题: 酷町堂:3743

0
0

0
已采纳
黄依成
黄依成
中级天翼
中级天翼

嗯.......

思路如下:

先找出数组最大值的行和列以及最小值的行和列

然后交换a[最大值行][最大值列],a[最小值行][最小值列];

最后输出数组。

for(遍历数组){
		for(遍历数组){
			输入;
			if(打擂台,找最大值的行和列){
				ai=i;aj=j; //找出行和列
			}
			if(打擂台,找最小值的行和列){
				ii=i;ij=j; //找出行和列
			}
		}
	}
交换(a[ai][aj],a[ii],a[ij]);
for(遍历数组){
		for(遍历数组){
			输出;
		}
	}

这道题的铺垫可以看1065

(话说1065是3分题,3743是1分题,这是为啥?)

黄依成在2020-05-04 21:25:12追加了内容

这都是我自己写的

0
0
邓涵睿
邓涵睿
中级天翼
中级天翼

先把数组和变量设出来(一个a[20][20],m,n和最大的数、下标行、下标列,最小的数、下标行、下标列),然后输入m和n,和a[i][j],在输入二维数组同时用if语句 if(i==0,j==0)最大的数和最小的数赋初值为a[0][0],其他为0。 else 确定最大的数、下标行、下标列和最小的数、下标行、下标列。出循环,swap(a[最大下标行][最大下标列],a[最小下标行][最小下标列])。最后输出就可以了。这是另一个人的回答

0
0
0
张峻僮
张峻僮
中级守护
中级守护

int m,n,a[100][100],maxn=-0x3f3f3f3f,minn=0x3f3f3f3f,ai,aj,ii,ij;
int main()
{
     cin>>m>>n;
    for(int i=1;i<=m;i++){    
        for(int j=1;j<=n;j++){
        cin>>a[i][j];
        if(a[i][j]>maxn){
                ai=i;
                aj=j; //找出行和列
            }
            if(a[i][j]<minn){
                ii=i;
                ij=j; //找出行和列
            }
    }
}
    swap(a[ai][aj],a[ii][ij]);
        for(int i=1;i<=m;i++){
    for(int j=1;j<=n;j++)
    cout<<a[i][j]<<" ";
    cout<<endl;
    }

大家看一下哪里有问题???急!!!

@黄依成 AC了我采纳你

0
张峻僮
张峻僮
中级守护
中级守护

其他人也可以说,说到点50醋町豆就是你的了!!!

或者发核心代码也可以!!!

我要回答