读书人

大神求解!编程从键盘按行输入4行5列

发布时间: 2012-05-27 05:42:30 作者: rapoo

大神求解!编程,从键盘按行输入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");
}

读书人网 >C语言

热点推荐