求二维数组中的最大值和最小值

C语言实现:找出3x3二维数组的最大值和最小值
这篇博客介绍了如何使用C语言编写程序,从用户输入的3x3二维整数数组中找出并输出最大值和最小值。程序通过读取9个整数,然后进行比较来确定数组中的极值。

题目:

编写程序,输入一个3×3的二维整数数组,输出其中最大值、最小值。

输入格式:

输入9个整型数到二维数组a[3][3],数据之间用一个空格分隔。

输出格式:

输出数组a的最大值和最小值

输入样例:

在这里给出一组输入。例如:

1 2 3 4 5 6 7 8 9

输出样例:

在这里给出相应的输出。例如:

max=9 min=1

源代码:

#include <stdio.h>//输入输出函数

int main()
{
    int a[3][3];
    for(int i=0;i<3;i++)
        for(int j=0;j<3;j++)
            scanf("%d",&a[i][j]);
    int max=a[0][0],min=a[0][0];
    for(int i=0;i<3;i++)
        for(int j=0;j<3;j++){
            if(a[i][j]<min){
                min=a[i][j];
            }
            if(a[i][j]>max){
                max=a[i][j];
            }
        }
    printf("max=%d min=%d",max,min);
    return 0;
 }
在C语言中,二维数组最大值最小值可以通过遍历二维数组的每个元素,比较并更新最大值最小值。以下是一个示例代码: ```c #include <stdio.h> #define ROWS 3 #define COLS 4 int main() { int arr[ROWS][COLS] = { {1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12} }; int max = arr[0][0]; int min = arr[0][0]; for (int i = 0; i < ROWS; i++) { for (int j = 0; j < COLS; j++) { if (arr[i][j] > max) { max = arr[i][j]; } if (arr[i][j] < min) { min = arr[i][j]; } } } printf("最大值: %d\n", max); printf("最小值: %d\n", min); return 0; } ``` 上述代码中,通过两层循环遍历二维数组的每个元素,将每个元素与当前的最大值最小值进行比较,若元素大于最大值则更新最大值,若元素小于最小值则更新最小值。 另一种情况,若要按特定要选出两个数,如在`n`行`n`列的二维整数数组中,先从每行选出大数,再从选出的`n`个大数中选出小数;其次,从每行选出小数,再从选出的`n`个小数中选出大数,示例代码如下: ```c #include <stdio.h> #define N 3 int main() { int arr[N][N] = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} }; int row_max[N]; int row_min[N]; // 找出每行的最大值最小值 for (int i = 0; i < N; i++) { row_max[i] = arr[i][0]; row_min[i] = arr[i][0]; for (int j = 1; j < N; j++) { if (arr[i][j] > row_max[i]) { row_max[i] = arr[i][j]; } if (arr[i][j] < row_min[i]) { row_min[i] = arr[i][j]; } } } // 从每行的最大值中找出最小值 int min_of_max = row_max[0]; for (int i = 1; i < N; i++) { if (row_max[i] < min_of_max) { min_of_max = row_max[i]; } } // 从每行的最小值中找出最大值 int max_of_min = row_min[0]; for (int i = 1; i < N; i++) { if (row_min[i] > max_of_min) { max_of_min = row_min[i]; } } printf("从每行大数中选出的小数: %d\n", min_of_max); printf("从每行小数中选出的大数: %d\n", max_of_min); return 0; } ``` 此代码先找出每行的最大值最小值分别存于`row_max``row_min`数组中,再从`row_max`数组中找出最小值,从`row_min`数组中找出最大值
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值