标题:拜托各位帮忙看一下这个程序错在哪?
只看楼主
jay_love
Rank: 1
来 自:福建
等 级:新手上路
帖 子:23
专家分:0
注 册:2008-5-13
 问题点数:0 回复次数:5 
拜托各位帮忙看一下这个程序错在哪?
#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;
}
搜索更多相关主题的帖子: float array max 
2008-05-20 21:24
jay_love
Rank: 1
来 自:福建
等 级:新手上路
帖 子:23
专家分:0
注 册:2008-5-13
得分:0 
题目是输出 4 × 4 阶矩阵的最大值、最小值及其下标。要求:

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

( 2 )使用全局变量。
2008-05-20 21:25
jay_love
Rank: 1
来 自:福建
等 级:新手上路
帖 子:23
专家分:0
注 册:2008-5-13
得分:0 
快来人帮我啊
2008-05-20 21:49
sstdfuwn
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2008-5-20
得分:0 
出   门谈谈生意 Q
售   后服务要好 Q
老   师说得没错 8
虎   胆雄心要有 7
机   灵聪慧必备 1
作   为新好青年 7
弊   与利要权衡 6
器   重英才乃贵 9
定   位器上分器 9
赢   钱就不客气 3
87176993是我QQ→可加
Call:15905003802
2008-05-20 21:49
jay_love
Rank: 1
来 自:福建
等 级:新手上路
帖 子:23
专家分:0
注 册:2008-5-13
得分:0 
已经做出来了,不用麻烦大家了
2008-05-20 22:18
随心
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:12
帖 子:2577
专家分:250
注 册:2007-8-12
得分:0 
我也写了一个,有点乱
程序代码:
#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


天之道,利而不害。圣人之道,为而不争。信言不美,美言不信。善者不辩,辩者不善。知者不博,博者不知。
2008-05-20 22:31



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-215314-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020067 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved