从键盘按行输入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
56 19 36 4 78
88 40 66 53 7
-3 47 29 21 32
44 67 72 85 95

看看行不?

# include <stdio.h>

int a[4][5];

void swap(int *a, int *b)
{
int temp = *a;
*a = *b;
*b = temp;
}

int main(int argc, char const *argv[])
{
int i, j;
int max;
int temp;
int indexi, indexj;

for(i = 0; i < 4; ++i)
{
for(j = 0; j < 5; ++j)
{
scanf("%d", &a[i][j]);

if((i==0 && j==0) || (a[i][j]>max))
{
max = a[i][j];
indexi = i;
indexj = j;
}
}
}

printf("a[%d][%d]=%d\n", indexi, indexj, a[indexi][indexj]);

for(j = 0; j < 5; ++j)
{
swap(&a[indexi][j], &a[3][j]);
}
for(i = 0; i < 5; ++i)
{
swap(&a[i][indexj], &a[i][4]);
}

for(i = 0; i < 4; ++i)
{
for(j = 0; j < 5; ++j)
{
printf("%d ", a[i][j]);
}
printf("\n");
}

return 0;
}

温馨提示:答案为网友推荐,仅供参考