首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

用指针兑现 求二维数组所有元素中的最小值

2013-01-06 
用指针实现 求二维数组所有元素中的最小值。这是我写的功能函数,编译通过了,老师说不对,要重写,望高手指教#

用指针实现 求二维数组所有元素中的最小值。
这是我写的功能函数,编译通过了,老师说不对,要重写,望高手指教
#include <stdio.h>
#include "function.h"

int min_2(int *p, int num)
{
int min;
int a[4][5];
int i, j;
min = **a;
       for(i = 0; i < 4; i++){
       for(j = 0; j < 5; j++){       
       if(*(*(a+i)+j) < min){
min = *(*(a+i)+j);
       
        }
       }
       }
return min;
}

[解决办法]



int min_2(int *p, int num)
{
int min;
//int a[4][5];


int i, j;
p = malloc(sizeof(int) * num);

for(i = 0; i<num; i++)
{
//initialize code
}
min = **a;
       for(i = 0; i < 4; i++){
       for(j = 0; j < 5; j++){       
       if(*(*(a+i)+j) < min){
min = *(*(a+i)+j);
       
        }
       }
       }
return min;
}

[解决办法]

int min_2(int *p, int num)
{
    int min;
    int i;
    min = *p;
    for(i = 0; i < num; i++)
    {
        if(*(p + i) < min)
            min = *(p + i);
    }
    return min;
}

[解决办法]
int min_2(int *p, int num)
{
int i, min = p[0];
       for(i = 1; i < num; i++){   
       if(p[i] < min) min = p[i];       
       }
return min;
}

[解决办法]

//接口实现
int min_2(int *p, int num)
{
    int min = *p;
    for(int i = 1; i < num; i++)
    {
        if(*(p + i) < min)
            min = *(p + i);
    }

    return min;
}


------解决方案--------------------


本函数全部用指针变量实现求二维数组所有元素中的最小值:


/* 获取二维数组中最小值。参数:数组指针,行数,列数 */
int getarray2min(int *parray, int rows, int cols)
{
int *pmin, *p, *pend;
pmin = p = parray;
pend = p + rows * cols;
for (; p < pend; p ++)
{
if (*pmin > *p)
pmin = p;
}
return *pmin;
}

热点排行