任务:程序
#include<iostream.h>
#define r 3 定义行为3行
#define c 4 定义列为4行
void main()
{
int b[r][c]={{1,2,3,4},{5,6,7,8},{9,10,11,12,13}}; 输入3行4列
int i,j,min,minr,minc,maxr,maxc,max,t; 定义
cout<<"原数组为:\n" 用下面循环把输入的数字在程序中表现出来。
for(i=0;i<r;i++){ 行,内置列循环,4列结束一次内循环,返回
for(j=0;j<c;j++) 外循环,重新画一行,再来内循环。
cout<<b[i][j]<<'\t' \t tab
cout<<'\n'; 输出一次外循环,来一次\n换行。
}
min=max=b[0][0]; 先把第一行第一列的元素赋值给最小值,最大值。
minr=minc=maxr=maxc=0; 赋值0
for(i=0;i<r;i++){ 内外循环,从第一行第一列开始与第一行第一列元素
for(j=0;j<c;j++){ 比较,循环结束,找出最大值与最小值、最小行和列,最大行和列
if(b[i][j]<min)min=b[i][j],minr=i,minc=j;
if(b[i][j]>max)max=b[i][j],maxr=i,maxc=j;
}
}
if(b[0][0]==max)maxr=minr,maxc=minc; 若第一个元素为最大值,把最小值行赋值给最大值行,同理列
t=b[0][0]; 最大值被交换到最小值位置
b[0][0]=b[minr][minc];
b[minr][minc]=t;
t=b[r-1][c-1]; 最后一个元素赋值给t
b[r-1][c-1]=b[maxr][maxc]; 最大值赋值给最后一个元素
b[maxr][maxc]=t; t赋值给最大值;此一系列操作即为最大值与最后一个元素交换。
cout<<"交换后的数组为:\n";
for(i=0;i<r;i++){ 输出
for(j=0;j<c;j++)
cout<<b[i][j]<<'\t';
cout<<'\n';
}
}
明日任务:函数