| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1035 人关注过本帖
标题:输入3*3的整形数组,找到一个元素,是所在行里面最大的,所在列里面最小的, ...
只看楼主 加入收藏
飞跃的乌龟
Rank: 2
等 级:论坛游民
帖 子:96
专家分:18
注 册:2012-10-20
结帖率:90.32%
收藏
已结贴  问题点数:20 回复次数:5 
输入3*3的整形数组,找到一个元素,是所在行里面最大的,所在列里面最小的,
没有的话就显示无吧,
数组为
1 2 3
4 5 6
7 8 9
真没想出来,书答案也没看懂,给个答案(关键地方给下解释)
搜索更多相关主题的帖子: 最大的 元素 
2012-11-12 16:51
飞跃的乌龟
Rank: 2
等 级:论坛游民
帖 子:96
专家分:18
注 册:2012-10-20
收藏
得分:0 
回复 楼主 飞跃的乌龟
输出的这个值,和所在行和列
2012-11-12 16:51
一个孩子
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:356
专家分:954
注 册:2012-10-1
收藏
得分:0 
程序代码:
#include<stdio.h>
#define M 3
#define N 3
int main()
{
    int i,j;
    int location1;
    int location2;
    int find=0;
    int a[M][N];
    printf("please input the vlaues of the arry\n");
    for(i=0;i<M;i++)
    {
        for(j=0;j<N;j++)
            scanf("%d",&a[i][j]);
    }
    for(i=0;i<M;i++)
    {
        for(location1=0,j=0;j<N;j++)
        {
            if(a[i][location1]<a[i][j])
                location1=j;
        }
        for(location2=0,j=0;j<M;j++)
        {
            if(a[location2][location1]>a[j][location1])
            {
                location2=j;
            }
        }
        if(location2==i)
        {
            find=1;
            printf("a[%d][%d] is the value that we want!\n",location2,location1);

        }
        if(!find)
        {
            printf("Can not find!\n");
        }
    }

    return 0;

}
可以运行!

重要的不是结果,是求一个结果的过程,哪怕千难万难,当你有想要的结果时,你已走的很远
2012-11-12 16:54
飞跃的乌龟
Rank: 2
等 级:论坛游民
帖 子:96
专家分:18
注 册:2012-10-20
收藏
得分:0 
回复 3楼 一个孩子
可以带点说明么?
2012-11-12 17:16
一个孩子
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:356
专家分:954
注 册:2012-10-1
收藏
得分:10 
程序代码:
#include<stdio.h>
#define M 3
#define N 3
int main()
{
    int i,j;
    int location1;
    int location2;
    int find=0;
    int a[M][N];
    printf("please input the vlaues of the arry\n");
    for(i=0;i<M;i++)//输入数组值
    {
        for(j=0;j<N;j++)
            scanf("%d",&a[i][j]);
    }
    for(i=0;i<M;i++)
    {
        for(location1=0,j=0;j<N;j++)//寻找行最大
        {
            if(a[i][location1]<a[i][j])
                location1=j;
        }
        for(location2=0,j=0;j<M;j++)//寻找列最小
        {
            if(a[location2][location1]>a[j][location1])
            {
                location2=j;
            }
        }
        if(location2==i)//如果寻找的行符合条件的话
        {
            find=1;
            printf("a[%d][%d] is the value that we want!\n",location2,location1);//输出它的位置

        }
        if(!find)
        {
            printf("Can not find!\n");
        }
    }

    return 0;

}
还有不懂得再说。。。。

重要的不是结果,是求一个结果的过程,哪怕千难万难,当你有想要的结果时,你已走的很远
2012-11-12 17:46
zxd543
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:内蒙古
等 级:贵宾
威 望:17
帖 子:453
专家分:2351
注 册:2012-4-12
收藏
得分:10 
回复 5楼 一个孩子
优化了一下你的程序
#include<stdio.h>
#define M 3
#define N 3
int main()
{
    int i,j;
    int location1;
    int a[M][N];
    printf("please input the vlaues of the arry\n");
    for(i=0;i<M;i++)
    {
        for(j=0;j<N;j++)
            scanf("%d",&a[i][j]);
    }
    for(i=0;i<M;i++)
    {
        for(location1=0,j=0;j<N;j++)
        {
            if(a[i][location1]<a[i][j])
                location1=j;//找见行的最大值
        }
        for(j=0;j<M;j++) //比较列是不是最小的 从当前的行比较
        {
            if(a[i][location1]>a[j][location1])
            {
                break;//如果列的值不是最小的 跳出 减少循环次数
            }
        }
        if(j==M)
        {
            printf("%d a[%d][%d] is the value that we want!\n",a[i][location1],i,location1);
            break;//找到跳出循环
        }
        else
            continue;   
    }
        if(i==M)//循坏正常结束 未找到值
        {
            printf("Can not find!\n");
        }
    return 0;

}

马马虎虎 不吝赐教 我是路过蹭分滴
2012-11-13 21:52
快速回复:输入3*3的整形数组,找到一个元素,是所在行里面最大的,所在列里面最 ...
数据加载中...
 
   



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

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