大神求解!编程,从键盘按行输入4行5列的二维整型数组a的各元,且各元的值都互不相等,先找到并输出数组a中值最大的元素.
编程,从键盘按行输入4行5列的二维整型数组a的各元,且各元的值都互不相等,先找到并输出数组a中值最大的元素,输出格式为:a[下标1][下标2]=该数值。然后将数组a中值最大的元素所在的行和列分别与最后一行和最后一列互相交换,再按行输出数组a的各元。例如,
输入:
56 78 36 4 19
44 95 72 85 67
-3 32 29 21 47
88 7 66 53 40
输出:a[1][1]=95
95 44 72 85 67
78 56 36 4 19
32 -3 29 21 47
7 88 66 53 40
[解决办法]
- C/C++ code
int main(){ int iCol,iRow,i,j,nMax; int Arr[4][5]; for(i=0;i<4;i++) for (j=0;j<5;j++) { scanf("%d",&Arr[i][j]); if (i==0&&j==0) { nMax = Arr[0][0]; iCol = 0; iRow = 0; } else if (nMax<Arr[i][j]) { nMax = Arr[i][j]; iCol = i; iRow = j; } } printf("a[%d][%d]=%d\n",iCol,iRow,Arr[iCol][iRow]); for (i=0;i<4;i++) { for(j=0;j<5;j++) printf("%10d",Arr[i][j]); printf("\n"); } return 0;}
[解决办法]
呃,接着笨笨熊大神的我写了个后面行列互换输出的代码,不知道对否,见笑了:
[code=C/C++][/code]
int t;
for (j=0;j<5;j++)/*进行行交换*/
{
t=Arr[icol][j];
Arr[icol][j]=Arr[3][j];
Arr[3][j]=t;
}
for (i=0;i<4;i++)/*进行列交换*/
{
t=Arr[i][irow];
Arr[i][irow]=Arr[i][4];
Arr[i][4]=t;
}
for (i=0;i<4;i++)
{
for (j=0;j<5;j++)
printf("%d",a[i][j]);
printf("\n");
}