C语言设计函数:接受一个二维数组,用指针方式返回数组的最大值,最小值...
发布网友
发布时间:2024-03-09 00:33
我来回答
共3个回答
热心网友
时间:2024-03-11 11:55
#include <stdio.h>
void get_val(int array[][200], int m, int n, int *max, int *min)
{
int i, j;
for(*max = array[0][0], *min= array[0][0], j = 0; j < m; j++){
for(i = 0; i < n; i++){
if(*max < array[j][i]){
*max = array[j][i];
}
if(*min > array[j][i]){
*min = array[j][i];
}
}
}
}
int main(int argc, char *argv[])
{
int array_test[100][200];
int j, i, max, min;
for(j = 0; j < 100; j++){
for(i = 0; i < 200; i++){
array_test[j][i] = i*j;
}
}
get_val(array_test, 100, 200, &max, &min);
printf("max:%d,min:%d\n",max,min);
}
编译通过并通过测试,另外还可以通过指针传递:
void get_val(int *array, int m, int n, int *max, int *min)
{
int i, j;
for(*max = *array, *min= *array, j = 0; j < m; j++){
for(i = 0; i < n; i++){
if(*max < *(array+j*n+i)){
*max = *(array+j*n+i);
}
if(*min > *(array+j*n+i)){
*min = *(array+j*n+i);
}
}
}
}
热心网友
时间:2024-03-11 11:54
给你个思想
void maxandmin(int arr[][],int m,int n,int *max int *min){
int i,j,maxval,minval;
max = min = &arr[0][0];
for(int i = 0;i < m;i++){
for(int j = 0;j < n;j++){
if(arr[i][j] > *max) max = &arr[i][j];
if(arr[i][j] < *min) min = &arr[i][j];
}
}
}
热心网友
时间:2024-03-11 12:00
看了别人的才发现我错了,用的太少了,再改一下
void xxx(int aaa[][],int * & max,int * & min)
{
//找出最大值的i,j
max=aaa[i]+j;
//找出最小值的i,j
min=aaa[i]+j;
}