| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1216 人关注过本帖
标题:用int (*s)[10]处理函数中的元素
只看楼主 加入收藏
fanpengpeng
Rank: 8Rank: 8
来 自:南极洲
等 级:蝙蝠侠
威 望:7
帖 子:299
专家分:849
注 册:2013-2-1
收藏
得分:0 
程序代码:
int i,j;
*n = 0;
for(i=0;i<mm;i++)
    for(j=0;j<nn;j++)
           b[(*n)++]=s[i][j];
return *n;

*n++ 不能这样写 n不是数组 n++ 指向未分配的内存
用*n计数后 就不需要再用b++了
*n作为计数器 应该在开始时 清零
函数返回int 需要返回最后的计数值

人生是一场错过 愿你别蹉跎
2013-03-31 23:56
小习小习
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:6
帖 子:1467
专家分:4792
注 册:2012-7-2
收藏
得分:3 
程序代码:
#include <stdio.h>
main()
{   int fun(int (*s)[10],int *b,int *n,int mm,int nn);
    int w[10][10]={{33,33,33,33},{44,44,44,44},{55,55,55,55}};
    int a[100],i,j,n=0;
    printf("array a:\n");
    for(i=0;i<3;i++)
    {for(j=0;j<4;j++)
            printf("%d ",w[i][j]);
        printf("\n");
    }
    fun(w,a,&n,3,4);
    printf("array b:\n");
    for(i=0;i<n;i++)
        printf("%d ",a[i]);
        getch();
}
int fun(int (*s)[10],int *b,int *n,int mm,int nn)
{
    int i, j;
    for(j = 0; j < nn; j++)
    for(i = 0; i < mm; i++)
         b[(*n)++] = s[i][j];
         return 0; 
    

}
上次没看清

实现自己既定的目标,必须能耐得住寂寞单干。
2013-04-01 18:42
Susake
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:女儿国的隔壁
等 级:贵宾
威 望:23
帖 子:2288
专家分:6481
注 册:2012-12-14
收藏
得分:0 
呵呵...听说二级其实还蛮难的..但是我们这专业不需要考..

仰望星空...........不忘初心!
2013-04-01 19:14
第二周杰伦
Rank: 2
等 级:论坛游民
帖 子:55
专家分:20
注 册:2013-3-23
收藏
得分:0 
回复 6楼 小习小习
还是不对啊 它的结果是


而题要求的是: 33 33 33 33 44 44 44 44 55 55 55 55
图片附件: 游客没有浏览图片的权限,请 登录注册

教教吧。我写的结果总是不对啊
2013-04-01 23:37
第二周杰伦
Rank: 2
等 级:论坛游民
帖 子:55
专家分:20
注 册:2013-3-23
收藏
得分:0 
回复 12楼 小习小习
不行啊  输出结果还不是:33 33 33 33 44 44 44 44 55 55 55 55。求助
2013-04-02 10:57
邓士林
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:淮河河畔
等 级:贵宾
威 望:61
帖 子:2392
专家分:13384
注 册:2013-3-3
收藏
得分:1 
链表属于数据结构,老谭的讲的挺少的,你看数据结构

Maybe
2013-04-02 11:48
小习小习
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:6
帖 子:1467
专家分:4792
注 册:2012-7-2
收藏
得分:1 
回复 14楼 第二周杰伦
程序代码:
#include <stdio.h>
main()
{   int fun(int (*s)[10],int *b,int *n,int mm,int nn);
    int w[10][10]={{33,33,33,33},{44,44,44,44},{55,55,55,55}};
    int a[100],i,j,n=0;
    printf("array a:\n");
    for(i=0;i<3;i++)
    {for(j=0;j<4;j++)
            printf("%d ",w[i][j]);
        printf("\n");
    }
    fun(w,a,&n,3,4);
    printf("array b:\n");
    for(i=0;i<n;i++)
        printf("%d ",a[i]);
        getch();
}
int fun(int (*s)[10],int *b,int *n,int mm,int nn)
{
    int i, j;
    for(i = 0; i < mm; i++)
    for(j = 0; j < nn; j++)
         b[(*n)++] = s[i][j];
         return 0; 
    

}
那就这个

实现自己既定的目标,必须能耐得住寂寞单干。
2013-04-02 14:01
第二周杰伦
Rank: 2
等 级:论坛游民
帖 子:55
专家分:20
注 册:2013-3-23
收藏
得分:0 
回复 13楼 Susake
二级不是我的目标,我的目标是嵌入式开发。你呢
2013-04-02 23:22
第二周杰伦
Rank: 2
等 级:论坛游民
帖 子:55
专家分:20
注 册:2013-3-23
收藏
得分:0 
回复 17楼 小习小习
谢谢。确实对了。
2013-04-02 23:25
第二周杰伦
Rank: 2
等 级:论坛游民
帖 子:55
专家分:20
注 册:2013-3-23
收藏
得分:0 
回复 11楼 fanpengpeng
不错。实现了我要的结果。不过我还有几点不明白的地方。
1.*n在主函数中有初值0,函数之间通过将n的地址传到子函数中,应该不用重新赋值,它本来就是0啊?
2 为什么我把函数中的return语句去掉,就调试不出来。
3 为什么12楼和17楼的return语句是“return 0;”,而你的句子确实"return *n;"而两者结果确实一样的?
非常感谢。
2013-04-02 23:50
快速回复:用int (*s)[10]处理函数中的元素
数据加载中...
 
   



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

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