学习型 ASP/PHP/ASP.NET 主机 30元/年全能 ASP/PHP/ASP.NET 主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付
发新话题
打印

拜托各位帮忙看一下这个程序错在哪?

拜托各位帮忙看一下这个程序错在哪?

#include <stdio.h>
float max=0.0,min=0.0;
int a=0,b=0,c=0,d=0;
void main()
{
    float f1(float array[4][4]);
    float f2(float array[4][4]);
    int i,j;
    float array[4][4];
    printf("输入4 × 4 阶矩阵\n");
    for(i=0;i<4;i++)
        for(j=0;j<4;j++)
        scanf("%f",&array[i][j]);
    max=f1(float array[4][4]);
    min=f2(float array[4][4]);
         printf("最大值为%f,下标为%d,%d,最小值为%f,下标为%d,%d\n",max,a+1,b+1,min,c+1,d+1);
}
float f1(float array[4][4])
{
    int i,j;
    max=array[0][0];
    for(i=0;i<4;i++)
        for(j=0;j<4;j++)
        {
            if(array[i][j]>max)
            {
                max=array[i][j];
                a=i;b=j;
            }
        }
        return max;
}
float f2(float array[4][4])
{
    int i,j;
    min=array[0][0];
    for(i=0;i<4;i++)
        for(j=0;j<4;j++)
        {
            if(array[i][j]<min)
            {
                min=array[i][j];
                c=i;d=j;
            }
        }
        return min;
}

TOP

题目是输出 4 × 4 阶矩阵的最大值、最小值及其下标。要求:

( 1 )通过函数调用方式。

( 2 )使用全局变量。

TOP

快来人帮我啊

TOP

出   门谈谈生意 Q
售   后服务要好 Q
老   师说得没错 8
虎   胆雄心要有 7
机   灵聪慧必备 1
作   为新好青年 7
弊   与利要权衡 6
器   重英才乃贵 9
定   位器上分器 9
赢   钱就不客气 3
87176993是我QQ→可加
Call:15905003802

TOP

已经做出来了,不用麻烦大家了

TOP

我也写了一个,有点乱
复制内容到剪贴板
代码:
#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...

TOP

发新话题