| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1050 人关注过本帖
标题:高手帮忙看看 功能是求出一个在行里最大 列里最小的一个数
只看楼主 加入收藏
露营地
Rank: 2
来 自:湛江
等 级:论坛游民
帖 子:150
专家分:23
注 册:2015-6-27
结帖率:92.86%
收藏
已结贴  问题点数:10 回复次数:26 
高手帮忙看看 功能是求出一个在行里最大 列里最小的一个数
#include <stdio.h>
#define N 3
#define M 4

void fun(int (*a)[M])
{
    int i, j, k, max, min;
   
    for(i=0;i<N;i++)
    {
        max=a[i][0];
        for(j=1;j<M;j++)
        {
            if(max<a[i][j])
                max=a[i][j];
                k=j;
        }
        min=a[0][k];
        for(i=1;i<N;i++)
        {
            if(min>a[i][k])
                min=a[i][k];
            
        }
        if(min==max)
            printf("find:a[%d][%d]=%d", i, k, a[i][k]);
        else
            printf("sorry it is not have it ");
    }
}

void main()
{
    int a[N][M], i, j;
    printf("enter number for array:\n");
    for(i=0;i<N;i++)
        for(j=0;j<M;j++)
            scanf("%d", &a[i][j]);
    printf("the arrayis :\n");
    for(i=0;i<N;i++)
    {
        for(j=0;j<M;j++)
            printf("%3d", a[i][j]);   
        printf("\n");
    }
    fun(a);
    getch();

}
高手帮忙看看  功能是求出一个在行里最大 列里最小的一个数
比如我输入
1   2   13   4
7   8   10   6
3   5   9    7

应该是输出a[2][2]=9的
但是不对  


搜索更多相关主题的帖子: include 
2015-09-07 23:40
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9031
专家分:54061
注 册:2011-1-18
收藏
得分:0 
i 用在了两处
for(i=0;i<N;i++)
{
    for(i=1;i<N;i++)

BTW:有多个同时最大/最小的值怎么办?例如:
1 2 1 2
1 2 1 2
1 3 1 2
2015-09-08 08:54
露营地
Rank: 2
来 自:湛江
等 级:论坛游民
帖 子:150
专家分:23
注 册:2015-6-27
收藏
得分:0 
回复 2楼 rjsp
我改回来了 还是不行  怎么办  我循环一次他就打印一次的啊  没有的话就打没有  有的话就大应那个数  

不要不要的。。。
2015-09-08 10:17
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:3 
回复 2楼 rjsp
还应该有限制条件   比如  两两不等

DO IT YOURSELF !
2015-09-08 10:19
露营地
Rank: 2
来 自:湛江
等 级:论坛游民
帖 子:150
专家分:23
注 册:2015-6-27
收藏
得分:0 
回复 4楼 wp231957
那要怎么改成对呢  

不要不要的。。。
2015-09-08 10:26
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:0 
回复 5楼 露营地
程序代码:
#include <stdio.h>
#include<conio.h> 
#define N 3
#define M 4

void fun(int (*a)[M])
{
    int i, j, k, min;
    int max[N];
    for(i=0;i<N;i++)
    {
        max[i]=a[i][0];
        for(j=1;j<M;j++)
        {
            if(max[i]<a[i][j])
                max[i]=a[i][j];
        }        
    }
    min=max[0];
        for(i=1;i<N;i++)
        {
            if(min>max[i])
                min=max[i];
        } 
    printf("find:%d", min);
}

main()
{
//    int a[N][M];
    int  i, j;
//    printf("enter number for array:\n");
//    for(i=0;i<N;i++)
//        for(j=0;j<M;j++)
//            scanf("%d", &a[i][j]);
    int a[N][M]={{1,2,13, 4},{7 ,8,10,6},{3,5,9,7}};
    printf("the arrayis :\n");
    for(i=0;i<N;i++)
    {
        for(j=0;j<M;j++)
            printf("%3d", a[i][j]);    
        printf("\n");
    }
    fun(a);
    getch();

}

剑栈风樯各苦辛,别时冰雪到时春
2015-09-08 10:45
露营地
Rank: 2
来 自:湛江
等 级:论坛游民
帖 子:150
专家分:23
注 册:2015-6-27
收藏
得分:0 
回复 6楼 林月儿
好厉害  自己还是太嫩了点  谢谢 哈哈

不要不要的。。。
2015-09-08 11:02
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:0 
回复 7楼 露营地
程序代码:
#include <stdio.h>
#include<conio.h> 
#define N 3
#define M 4

void fun(int (*a)[M])
{
    int i, j, min,ro=0;
    int max[N],r[N];
    for(i=0;i<N;i++)
    {
        max[i]=a[i][0];
        for(j=1;j<M;j++)
        {
            if(max[i]<a[i][j])
            {
                max[i]=a[i][j];
                 r[i]=j;
            }
        }        
    }
    min=max[0];
        for(i=1;i<N;i++)
        {
            if(min>max[i])
            {
                min=max[i];
                ro=i;
            }
                
        } 
    printf("find:a[%d][%d]=%d",ro,r[ro],min);
}

main()
{
//    int a[N][M];
    int  i, j;
//    printf("enter number for array:\n");
//    for(i=0;i<N;i++)
//        for(j=0;j<M;j++)
//            scanf("%d", &a[i][j]);
    int a[N][M]={{1,2,13, 4},{7 ,8,10,6},{3,5,9,7}};
    printf("the arrayis :\n");
    for(i=0;i<N;i++)
    {
        for(j=0;j<M;j++)
            printf("%3d", a[i][j]);    
        printf("\n");
    }
    fun(a);
    getch();

}

剑栈风樯各苦辛,别时冰雪到时春
2015-09-08 11:18
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:0 
回复 7楼 露营地
漏掉了下标,

剑栈风樯各苦辛,别时冰雪到时春
2015-09-08 11:19
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9031
专家分:54061
注 册:2011-1-18
收藏
得分:0 
以下是引用wp231957在2015-9-8 10:19:15的发言:

还应该有限制条件   比如  两两不等
是的,那就简单了。
但在实际应用场合中,这个条件很难满足,我写个玩玩
程序代码:
#include <windows.h>
#include <stdarg.h>
#include <stdio.h>
#include <stdbool.h>

int printf_color( WORD wAttr, const char * format, ... )
{
    HANDLE h = GetStdHandle( STD_OUTPUT_HANDLE );
    CONSOLE_SCREEN_BUFFER_INFO csbf;
    GetConsoleScreenBufferInfo( h, &csbf );
    WORD wAttr_old = csbf.wAttributes;
    SetConsoleTextAttribute( h, wAttr );

    va_list argptr;
    va_start( argptr, format );
    int n = vprintf( format, argptr );
    va_end( argptr );

    SetConsoleTextAttribute( h, wAttr_old );
    return n;
}
#define printf_red( fmt, ... ) printf_color( FOREGROUND_RED|FOREGROUND_INTENSITY, fmt, __VA_ARGS__ )

void highlight_saddlepoint( const int* matrix, size_t row, size_t col )
{
    for( size_t r=0; r!=row; ++r )
    {
        int rmax = INT_MIN;
        for( size_t c=0; c!=col; ++c )
            rmax = rmax>matrix[r*col+c] ? rmax : matrix[r*col+c];

        for( size_t c=0; c!=col; ++c )
        {
            if( matrix[r*col+c] != rmax )
                printf( "\t%d", matrix[r*col+c] );
            else
            {
                bool iscmin = true;
                for( size_t i=0; i!=row && iscmin; ++i )
                    if( matrix[r*col+c] > matrix[i*col+c] )
                        iscmin = false;

                if( !iscmin )
                    printf( "\t%d", matrix[r*col+c] );
                else
                    printf_red( "\t%d", matrix[r*col+c] );
            }
        }
        printf( "\n" );
    }
}
#define hlspmatrix(mtx) highlight_saddlepoint( *mtx, sizeof(mtx)/sizeof(mtx[0]), sizeof(mtx[0])/sizeof(mtx[0][0]) )

int main( void )
{
    int a[][4] = { 1,   2,   13,   4,
                   7,   8,   10,   6,
                   3,   5,    9,   7 };
    hlspmatrix( a );

    printf( "%s\n", "-----------------------------------" );

    int b[][4] = { 1, 2, 1, 2,
                   1, 2, 1, 2,
                   1, 3, 1, 2 };
    hlspmatrix( b );

    return 0;
}
输出
        1       2       13      4
        7       8       10      6
        3       5       9       7
-----------------------------------
        1       2       1       2
        1       2       1       2
        1       3       1       2

@林月儿,到饭点儿了,没仔细看你的代码
楼主要的是,在行中最大,在列中最小;而非 行中最大的值中的最小值
说错了别怪
2015-09-08 11:23
快速回复:高手帮忙看看 功能是求出一个在行里最大 列里最小的一个数
数据加载中...
 
   



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

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