C语言练习篇-5二维数组行列交换及找最大值

来源:互联网 发布:破解电脑红蜘蛛软件 编辑:程序博客网 时间:2024/05/16 11:03

练习:将一个二维数组的行和列交换,存储到另一个数组。

#include <stdio.h>int main() {    int arr1[2][3] = {{1,2,3,},                      {4,5}};    int arr2[3][2] = {0};    for (int i = 0; i < 3; i++) {        for (int j = 0; j < 2; j++) {            arr2[i][j] = arr1[j][i];            printf("%2d ",arr2[i][j]);        }        printf("\n");    }    return 0;}

练习:定义一个3行4列的数组,找出数组的最大元素所在行和列。
方法一:只能找一个最大的,有两个以上最大值则打印第一个。

#include <stdio.h>int main() {    int a[3][4] = {{1,2,3,245},                   {4,5,1333,7},                   {99,10,11,1333}};    int max = a[0][0], im = 0, jm = 0;    for (int i = 0; i < 3; i++) {        for (int j = 0; j < 4; j++) {            if (max < a[i][j]) {                max = a[i][j];                im = i;                jm = j;            }        }    }    printf("最大元素%d所在行为%d 列为%d",max,im,jm);    return 0;}

方法二:可以查找多个相同的最大值。

#include <stdio.h>int main() {    int a[3][4] = {{1333,2,3,245},                   {4,5,1333,7},                   {99,10,11,1333}};    int max = a[0][0];    for (int i = 0; i < 3; i++) {        for (int j = 0; j < 4; j++) {            if (max < a[i][j]) {                max = a[i][j];            }        }    }    for (int i = 0; i < 3; i++) {        for (int j = 0; j < 4; j++) {            if (a[i][j] == max) {                printf("最大元素%d所在行为%d、列为%d\n",a[i][j],i,j);            }        }    }    return 0;}
0 0
原创粉丝点击