| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1057 人关注过本帖
标题:二维数组指针调用问题.
只看楼主 加入收藏
sudong0913
Rank: 1
等 级:新手上路
帖 子:38
专家分:5
注 册:2009-4-15
结帖率:76.92%
收藏
已结贴  问题点数:10 回复次数:4 
二维数组指针调用问题.
二维数组指针调用问题.
输入一个int二维数组,把其中最大的元素打印出来(指针调用的方式)
#include<stdio.h>
void swap(int *x,int n,int m)
{
    int i,j,t,k;
    for (i=0;i<n ;i++ )
    {
        for (j=0;j<m ;j++ )
        {
            k=*(*(x+i)+j);
            if (*x<*k)
            {
                t=*x;
                *x=*k;
                *k=t;
            }
        }
    }
}
void main()
{
    int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
    swap(&a[0][0],3,4);
    printf("%4d\n",*a);
}
帮忙  改下~~~~~~~~~~~~~~~~~
搜索更多相关主题的帖子: 指针 
2010-05-29 15:05
apull
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:三体星系
等 级:版主
威 望:216
帖 子:1484
专家分:9058
注 册:2010-3-16
收藏
得分:3 
按照题意不用那么麻烦。。
直接扫描数组,查找最大的元素。

程序代码:
#include <stdio.h>

int fmax(int *x,int n)
{
    int max=*x;
    for(int i=0; i<n; ++i)
    {
        if(max<*x)max=*x;
        ++x;
    }
    return max;

}

int main(int argc, char *argv[])
{
    int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};

    printf("%4d\n",fmax(&a[0][0],3*4));
    return 0;
}
2010-05-29 16:37
实数虚数
Rank: 2
来 自:江西抚州
等 级:论坛游民
帖 子:27
专家分:37
注 册:2010-5-17
收藏
得分:2 
#include<stdio.h>
void swap(int (*x)[4],int n)
{
    int i,j,t,t1,k;
    k=*(*x);
   
    for (i=0;i<n ;i++ )
    {
        for (j=0;j<4 ;j++ )
        {
            t1=*(*(x+i)+j);
            if(k<t1)

        {
                t=k;
                k=t1;
                t1=t;
            }
            printf("%4d",*(*(x+i)+j));
        }
    }
    printf("k=%d",k);
}
void main()
{
    int a[3][4]={1,2,3,4,5,6,7,8,13,10,11,12};
    swap(a,3);
   
}
2010-05-29 20:28
sudong0913
Rank: 1
等 级:新手上路
帖 子:38
专家分:5
注 册:2009-4-15
收藏
得分:0 
谢谢2位~~
正学习指针中~~
练习用形参指针实现元素的交换~~
貌似2楼的好象不行~~~
在网吧  不能运行  带回家 在试下~~
 谁能告诉我, 我写的错在哪里吗?
  求教~~~~~~~~~~~~~~~~~谢谢拉
2010-05-30 14:10
sunmingchun
Rank: 4
来 自:安徽-滁州
等 级:业余侠客
帖 子:198
专家分:277
注 册:2010-4-2
收藏
得分:5 
#include<stdio.h>
void swap(int *x,int n)
{
    int i,t,k;
    for (i=0;i<n ;i++ )
    {
            k=*(x+i);
            if (*x<k)
            {
                t=*x;
                *x=k;
                k=t;
            }
    }
    printf("%d ",*x);
}
void main()
{
    int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
    swap(&a[0][0],12);
}
你试试吧!
2010-05-30 16:22
快速回复:二维数组指针调用问题.
数据加载中...
 
   



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

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