|
版主
  
- 帖子
- 1287
- 精华
- 0
- 性别
- 男
- 注册时间
- 2007-8-12
|
6#
大 中
小 发表于 2008-5-20 22:31 只看该作者
我也写了一个,有点乱 复制内容到剪贴板代码:#include <stdio.h>
#include <windows.h>
#define ARR_COUNT 4
#define __max(a,b) ((a>b)?(a):(b))
//#define MAX(a,b,c,d) __max(__max(a,b), __max(c,d))
#define __min(a,b) ((a>b)?(b):(a))
//#define MIN(a,b,c,d) __min(__min(a,b), __min(c,d))
int a[ARR_COUNT][ARR_COUNT];
//::memset(a, 0, sizeof(a));
int max_x = 0, max_y = 0, min_x = 0, min_y = 0;
int max = 0, min = 0;
int f1(int b[]);
int f2(int c[]);
void find_ix();
void get_result();
int MAX(int a, int b, int c, int d)
{
return __max(__max(a,b), __max(c,d));
}
int MIN(int a, int b, int c, int d)
{
return __min(__min(a,b), __min(c,d));
}
int main()
{
for (int i=0; i<ARR_COUNT; i++)
{
for (int j=0; j<ARR_COUNT; j++)
{
scanf("%d", &a[i][j]);
}
}
get_result();
printf("最大值:%d 索引:%d:%d\n最小值:%d 索引:%d:%d\n",
max, max_x, max_y, min, min_x, min_y);
return 0;
}
void get_result()
{
max = MAX(f1(a[0]), f1(a[1]), f1(a[2]), f1(a[3]));
min = MIN(f2(a[0]), f2(a[1]), f2(a[2]), f2(a[3]));
find_ix();
}
int f1(int b[])
{
return MAX(b[0], b[1], b[2], b[3]);
}
int f2(int c[])
{
return MIN(c[0], c[1], c[2], c[3]);
}
void find_ix()
{
int j = 0;
for (int i=0; i<ARR_COUNT; i++)
{
for (j=i; j<ARR_COUNT; j++)
{
if (a[i][j] == max)
{
max_x = i;
max_y = j;
}
if (a[i][j] == min)
{
min_x = i;
min_y = j;
}
}
}
}
#if 0
int MAX(int a, int b, int c, int d)
{
return __max(__max(a,b), __max(c,d));
}
int MIN(int a, int b, int c, int d)
{
return __min(__min(a,b), __min(c,d));
}
#endif
Love、Health、Calm. than anything...
|