| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3727 人关注过本帖
标题:用指针求二维数组每行的最大值
取消只看楼主 加入收藏
zhangte65
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2014-12-15
结帖率:0
收藏
已结贴  问题点数:10 回复次数:3 
用指针求二维数组每行的最大值
#include"stdio.h"
void init_array(int *p1);
void getmax(int *p1,int s[]);

main()
{
    int b[3][4],s[3];
    int i;
    init_array(@#1);
    getmax(@#3,s);
    for(i=0;i<3;i++)
        printf("row%d:  max=%d\n",i,s[i]);   
}

void init_array(@#4)
{
    int i,j;
    for(i=0;i<3*4;i++)
        scanf("%d",@#5);
   
}

void getmax(int *p1,int s[])  //p1是行指针,p2是元素指针
{
    int i,j,max;
    for(i=0;i<3;i++)
    {
        max=@#6    //取最大值为每行的第一个单元格的值
                   //从每行的第二列单元格到最后一个单元格逐个比较   
        for(j=1;j<4;j++)
             @@1

                @@1
        s[i]=max;   
    }   
}
因为刚学,这题只是填空,
搜索更多相关主题的帖子: 元素 最大值 include 
2015-04-07 20:43
zhangte65
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2014-12-15
收藏
得分:0 
#include"stdio.h"
void init_array(int *p1);
void getmax(int *p1,int s[]);

main()
{
    int b[3][4],s[3];
    int i;
    init_array(*b);
    getmax(*b,s);
    for(i=0;i<3;i++)
        printf("row%d:  max=%d\n",i,s[i]);   
}

void init_array(int *p1)
{
    int i,j;
    for(i=0;i<3*4;i++)
        scanf("%d",*p1++);
   
}

void getmax(int *p1,int s[])  //p1是行指针,p2是元素指针
{
    int i,j,max;
    for(i=0;i<3;i++)
    {
        max=(*(p1+i));    //取最大值为每行的第一个单元格的值
                   //从每行的第二列单元格到最后一个单元格逐个比较   
        for(j=1;j<4;j++)
             {
             if(max<*(p1+i)+j)
                 max=*(p1+i)+j;   
             }
        s[i]=max;   
    }   
}
这是填空以后的内容,运行以后输入4个数字就直接卡死了。求指教哪里错了
2015-04-07 20:44
zhangte65
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2014-12-15
收藏
得分:0 
回复 3楼 longwu9t
这样改之后,就变成了这样。

1 2 3 4
5 6 7 8
9 10 11 12
row0:  max=4
row1:  max=5
row2:  max=6
请按任意键继续. . .
2015-04-07 20:59
zhangte65
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2014-12-15
收藏
得分:0 
#include"stdio.h"
void init_array(int *p1);
void getmax(int *p1,int s[]);

main()
{
    int b[3][4],s[3];
    int i;
    init_array(  *b);
    getmax( *b ,s);
    for(i=0;i<3;i++)
        printf("row%d:  max=%d\n",i,s[i]);   
}

void init_array(  int *p1)
{
    int i,j;
    for(i=0;i<3*4;i++)
        scanf("%d",  p1+i);
   
}

void getmax(int *p1,int s[])  //p1是行指针,p2是元素指针
{
    int i,j,max;
    for(i=0;i<3;i++)
    {
        max=  *(p1+i*4+0) ;    //取最大值为每行的第一个单元格的值
                   //从每行的第二列单元格到最后一个单元格逐个比较   
        for(j=1;j<4;j++)
            
    {
                 if(max<*(p1+i*4+j))
                     max=*(p1+i*4+j);
              }

        s[i]=max;   
    }   
}
这是改过后的正确答案。。。
2015-04-08 17:52
快速回复:用指针求二维数组每行的最大值
数据加载中...
 
   



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

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