| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1089 人关注过本帖
标题:一道经典函数题目
只看楼主 加入收藏
童国顺
Rank: 1
等 级:新手上路
帖 子:70
专家分:6
注 册:2010-4-18
结帖率:60%
收藏
已结贴  问题点数:12 回复次数:13 
一道经典函数题目
编写程序,将一个MXN的矩阵A存入一个二维数组,根据A生成一个新的矩阵B存入另外一个二维数组,生成的方法是:若A的某个元素是“局部最大值”,则B的相应元素设为1;否则设为0.所谓“局部最大值”是指该值比其上,下,左,右四个邻值都大例如A
6 9 7 5 6   B   0 1 0 0 1
2 6 3 3 4       0 0 0 0 0
2 2 4 1 7       0 0 0 0 1
6 5 9 5 6       1 0 0 0 0
2 6 4 6 8       0 1 0 0 1
要求 编写三个函数  输入  输出   转换
编写主函数调用上面的三个函数
搜索更多相关主题的帖子: 函数 经典 
2010-05-03 20:24
童国顺
Rank: 1
等 级:新手上路
帖 子:70
专家分:6
注 册:2010-4-18
收藏
得分:0 
回复 楼主 童国顺
#include"stdio.h"
int a[20][20];
int b[20][20];
int m,n;
int tong()
{
    int i,j;
    printf("请输入数组a\n:");
     scanf("%d",&a[i][j]);
     printf("\n");
    for(i=0; i< m ;i++)
    for(j=0; j< n; j++)
    return 1;
}
int swap()
{
    int i,j,flag;
    for(i=0;i<m;i++)
    {
        for(j=0;j<n;j++)
        {
            flag=1;
            if(i-1>=0&&a[i][j]<a[i-1][j])
                flag=0;
            if(j-1>=0&&a[i][j]<a[i][j-1])
                flag=0;
            if(i+1<m&&a[i][j]<a[i+1][j])
                flag=0;
            if(j+1<n&&a[i][j]<a[i][j+1])
                flag=0;

            if(flag==1)b[i][j]=1;
            else b[i][j]=0;  
        }
    }
    return 1;
}
int output()
{
    int i,j;
    printf("请输出数组b\n:");
    for(i=0;i<m;i++)   
        for(j=0;j<n;j++)
        scanf("%d",&b[i][j]);
        printf("\n");
    return 1;
}

void main()
{
    tong();
    swap();
    output();
    return 1;
} 怎么得不到我想要的结果
2010-05-03 20:27
BlueGuy
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:29
帖 子:4476
专家分:4055
注 册:2009-4-18
收藏
得分:3 
#include <stdio.h>
#define M 4
#define N 5
int a[M+2][N+2];
int b[M+2][N+2];

int main(void)
{
    int i, j;
    for (i = 1; i < M; i++)
    {
        for (j = 1; j < N; j++)
        {
            // scanf();
        }
    }


    for (i = 1; i < M; i++)
    {
        for (j = 1; j < N; j++)
        {
            if(a[i][j] > a[i-1][j] && a[i][j] > a[i+1][j] && a[i][j] > a[i][j-1] && a[i][j] > a[i][j+1])
               b[i][j] = 1;
         }
    }

    for (i = 1; i < M; i++)
    {
        for (j = 1; j < N; j++)
        {
            printf("%d", b[i][j]);
        }
    }

}

[ 本帖最后由 BlueGuy 于 2010-5-3 20:54 编辑 ]

我就是真命天子,顺我者生,逆我者死!
2010-05-03 20:38
BlueGuy
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:29
帖 子:4476
专家分:4055
注 册:2009-4-18
收藏
得分:0 
上午写的太潇洒了,

我就是真命天子,顺我者生,逆我者死!
2010-05-03 20:39
童国顺
Rank: 1
等 级:新手上路
帖 子:70
专家分:6
注 册:2010-4-18
收藏
得分:0 
回复 4楼 BlueGuy
呵呵  你那个没有结果  再一个也没有三个函数
2010-05-03 20:54
童国顺
Rank: 1
等 级:新手上路
帖 子:70
专家分:6
注 册:2010-4-18
收藏
得分:0 
回复 4楼 BlueGuy
呵呵 新手  你qq多少   多多请教  谢谢
2010-05-03 21:03
BlueGuy
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:29
帖 子:4476
专家分:4055
注 册:2009-4-18
收藏
得分:0 
回复 6楼 童国顺
我还要请教别人呢!

我就是真命天子,顺我者生,逆我者死!
2010-05-03 21:05
童国顺
Rank: 1
等 级:新手上路
帖 子:70
专家分:6
注 册:2010-4-18
收藏
得分:0 
回复 7楼 BlueGuy
呵呵 相互学习  
2010-05-03 21:19
童国顺
Rank: 1
等 级:新手上路
帖 子:70
专家分:6
注 册:2010-4-18
收藏
得分:0 
回复 7楼 BlueGuy
可不可以三个函数编写下  再用主函数调用   那样我函数部分可以得到提高  谢谢
2010-05-03 21:30
草狼
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:2
帖 子:577
专家分:1040
注 册:2010-4-6
收藏
得分:3 
#include"stdio.h"
int a[20][20];
int b[20][20];
int m,n;
int tong()
{
    int i,j;
    printf("请输入数组a:\n");
    scanf("%d%d",&m,&n);
    for(i=0; i< m ;i++)
    for(j=0; j< n; j++)
        scanf("%d",&a[i][j]);
    return 1;
}
int swap()
{
    int i,j,flag;
    for(i=0;i<m;i++)
    {
        for(j=0;j<n;j++)
        {
            flag=1;
          if(i-1>=0&&a[i][j]<a[i-1][j])
                flag=0;
            if(j-1>=0&&a[i][j]<a[i][j-1])
                flag=0;
            if(i+1<m&&a[i][j]<a[i+1][j])
                flag=0;
            if(j+1<n&&a[i][j]<a[i][j+1])
                flag=0;

            
            if(flag==1)b[i][j]=1;
            else b[i][j]=0;  
        }
    }
    return 1;
}
int output()
{
    int i,j;
    printf("请输出数组b:\n");
    for(i=0;i<m;i++)
    {
        for(j=0;j<n;j++)
        {
          printf("%d",b[i][j]);
          if(j<n-1) printf(" ");
        }
        printf("\n");
    }
    return 1;
}

void main()
{
    tong();
    swap();
    output();
    return 1;
}

在你的代码上稍微改动了下 你看这样行不
2010-05-03 21:54
快速回复:一道经典函数题目
数据加载中...
 
   



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

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