查找数组(不限维数)中的最大元素和最小元素

来源:互联网 发布:可靠性软件 编辑:程序博客网 时间:2024/05/17 15:06

程序思路:
根据二维数组在内存中的存储方式(顺序存储),只需用两个指针,一个指向数组第一个元素,一个指向数组最后一个元素,然后进行排序即可。

二维数组在内存中的存储方式:
这里写图片描述

#include "stdio.h"#define SIZE_ONE 2#define SIZE_TWO 3int main(void){    int a[SIZE_ONE][SIZE_TWO] = {};    int temp = 0, i = 0, j = 0;    int* ph;    int* pe;    //输入数组元素    for (i = 0; i < SIZE_ONE; i++)    {        printf("请输入第%d行元素:\n", i+1);        for (j = 0; j < SIZE_TWO; j++)            scanf_s("%d", &a[i][j]);    }    //排序    for (ph = &a[0][0]; ph <= &a[SIZE_ONE - 1][SIZE_TWO - 1]; ph++)    {        for (pe = ph; pe <= &a[SIZE_ONE - 1][SIZE_TWO - 1]; pe++)        {            if (*ph < *pe)            {                temp = *pe;                *pe = *ph;                *ph = temp;            }        }    }    //输出数组    for (i = 0; i < SIZE_ONE; i++)    {        for (j = 0; j < SIZE_TWO; j++)            printf("%d\t", a[i][j]);        printf("\n");    }    printf("最大元素和最小元素分别为:%d%d\n", a[0][0], a[SIZE_ONE - 1][SIZE_TWO - 1]);    return 0;}

上述程序可以实现在一维和二维数组中获取最大和最小元素,但是稍作更改就可以获取任意维数组的最大和最小元素。

原创粉丝点击