| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1511 人关注过本帖
标题:求助!用指针变量作为参数定义一个函数,打印多个二维数组。
只看楼主 加入收藏
三角湖
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2017-11-20
结帖率:0
收藏
已结贴  问题点数:20 回复次数:2 
求助!用指针变量作为参数定义一个函数,打印多个二维数组。
用指针变量作为参数定义一个函数,打印多个二维数组。
题目就是这样了,各位帮帮忙,谢谢!
搜索更多相关主题的帖子: 定义 函数 打印 多个 维数 
2017-11-21 13:31
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:20 
常规方法传参要知道一维大小~

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

#define SIZE(a) sizeof (a)/sizeof(*a)

void fun(int* ,size_t ,size_t );

int main( void )
{
    int a[2][2]=
    {
        {1,2},
        {3,4}
    };
    
    int b[3][4]=
    {
        {1,2,3,4},
        {5,6,7,8},
        {9,10,11,12}
    };
    
    fun((int* )a,SIZE(a),SIZE(*a));
    fun((int* )b,SIZE(b),SIZE(*b));
    
    return 0;
}

void fun(int* a,size_t i,size_t j)
{
    size_t k=0;
    size_t t=j+1;
    
    for (;k!=i*t;++k)
        printf((k%t)^j?"%-4d":"\n",a[j*(k/t)+k%t]);
}


还有另一种方法就是用动态数组处理(复杂点的就用平衡树来模拟多维数组——比较复杂有时效率较低不过却可以节省空间处理灵活)~



[此贴子已经被作者于2017-11-21 21:26编辑过]


[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-11-21 21:18
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
然后刚刚学习了一种新写法~

    for (;k!=i*t;++k)
        printf("%-4d\0\n"+5*!(k%t^j),a[j*(k/t)+k%t]);

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-11-21 21:43
快速回复:求助!用指针变量作为参数定义一个函数,打印多个二维数组。
数据加载中...
 
   



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

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