| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1216 人关注过本帖
标题:用int (*s)[10]处理函数中的元素
取消只看楼主 加入收藏
第二周杰伦
Rank: 2
等 级:论坛游民
帖 子:55
专家分:20
注 册:2013-3-23
结帖率:88.89%
收藏
已结贴  问题点数:10 回复次数:11 
用int (*s)[10]处理函数中的元素
程序代码:
#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]);
}
int fun(int (*s)[10],int *b,int *n,int mm,int nn)
{
    

}
将一个3行4列的二维数组存放在一个一维数组中依次输出。如上
33 33 33 33
44 44 44 44
55 55 55 55
变成:33 33 33 33 44 44 44 44 55 55 55 55输出。
而且要把在一维数组中所存数的个数存放在变量n的单元中。        
这个 int (*s)[10] 能不能具体给解释一下。实参w数组的数组名传给形参(*s)[10],如果在fun中i=0,那么形参(*s)[10]加1,是不是指向w中第零行第一列元素?
如何用那个形参把w数组中的元素表示出来?求解。这个算法我会,就是表示元素,把我搞晕了。

搜索更多相关主题的帖子: 元素 color 
2013-03-31 14:17
第二周杰伦
Rank: 2
等 级:论坛游民
帖 子:55
专家分:20
注 册:2013-3-23
收藏
得分:0 
回复 2楼 wp231957
是啊  不怕你笑话,今天考二级,就这道题。前面选择题还做的可以,结果改错、填空连续遇到的都是链表,链表我都没接触过,这个程序,算法我会,就是int (*s)[10]我理解不透彻,造成了这一败笔。
2013-03-31 17:05
第二周杰伦
Rank: 2
等 级:论坛游民
帖 子:55
专家分:20
注 册:2013-3-23
收藏
得分:0 
回复 4楼 fanpengpeng
我看老谭的书,还有其他书对着这块讲的很少,仅仅只是提了一下。求助啊
2013-03-31 19:22
第二周杰伦
Rank: 2
等 级:论坛游民
帖 子:55
专家分:20
注 册:2013-3-23
收藏
得分:0 
回复 6楼 小习小习
好像不行,我调试一下不行。你看代码
程序代码:
#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]);
}
int fun(int (*s)[10],int *b,int *n,int mm,int nn)
{

 
    int i,j;
    for(j=0;j<mm;j++)
        for(i=0;i<nn;i++)
            b[(*n)++]=s[i][j];
}
错误信息:
图片附件: 游客没有浏览图片的权限,请 登录注册

求助啊
2013-03-31 23:04
第二周杰伦
Rank: 2
等 级:论坛游民
帖 子:55
专家分:20
注 册:2013-3-23
收藏
得分:0 
回复 4楼 fanpengpeng
你看我写的函数是这样如何:
程序代码:
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++,)
        {
            *b=s[i][j];
                *n++;
       
        }
}

2013-03-31 23:09
第二周杰伦
Rank: 2
等 级:论坛游民
帖 子:55
专家分:20
注 册:2013-3-23
收藏
得分:0 
回复 7楼 fanpengpeng
非常感谢。我好像懂了。
程序代码:
{
    int i,j;
    for(i=0;i<mm;i++)
        for(j=0;j<nn;j++,*n++)
            *b++=s[i][j];
        ++(*n);
}
你看这样对不?
2013-03-31 23:29
第二周杰伦
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: 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
快速回复:用int (*s)[10]处理函数中的元素
数据加载中...
 
   



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

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