| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 330 人关注过本帖
标题:一个是数组解法一个是指针解法
只看楼主 加入收藏
heimodao
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:88
专家分:172
注 册:2011-4-8
结帖率:100%
收藏
已结贴  问题点数:30 回复次数:4 
一个是数组解法一个是指针解法
编写一个程序,声明3X5的数组,数值随意。程序打印出数值,然后数 值翻一倍,接着再次打印出新值..
一个是数组的方法,一个是指针的办法,请问还有别的办法吗?望会的指点迷津。
one:***************************************************************
#include <stdio.h>
#define SA 3
#define SB 5

void A(int [][5],int,int);

int main()
{
int i,j,a[3][5]={{1,2,3,4,5},{1,2,3,4,5},{1,2,3,4,5}};
    for(i=0;i<SA;i++)   {
        for(j=0;j<SB;j++)
            printf("%d ",a[i][j]);
        printf("\n");}
    printf("PK\n");
    A(a,SA,SB);
    for(i=0;i<SA;i++)   {
        for(j=0;j<SB;j++)
            printf("%d ",a[i][j]);
        printf("\n");}
return 0;
}

void A(int x[][5],int sa,int sb)
{
int i,j;   
    for(i=0;i<sa;i++)   {
        for(j=0;j<sb;j++)
            x[i][j]*=x[i][j];
    }
}
*******************************************************************************



two*****************************************************************************
#include <stdio.h>

void A(int [][5],int,int);

int main()
{


    int i,j,a[3][5]={{1,2,3,4,5},{1,2,3,4,5},{1,2,3,4,5}};

    for(i=0;i<3;i++)   {
        for(j=0;j<5;j++)
            printf("%d ",a[i][j]);
        printf("\n");}
    printf("PK\n");
    A(a,3,5);
   
    for(i=0;i<3;i++)   {
        for(j=0;j<5;j++)
            printf("%d ",a[i][j]);
        printf("\n");}
return 0;
}

void A(int x[][5],int y,int z)
{   
int i,j;
int *xptr=x;
    for(i=0;i<y;i++)   {
        for(j=0;j<z;j++)
        *((xptr+z*i)+j) *= *((xptr+z*i)+j);
}
}
***************************************************************
2011-04-23 21:34
粉jj
Rank: 2
等 级:论坛游民
威 望:1
帖 子:123
专家分:82
注 册:2011-3-8
收藏
得分:10 
建立行指针。
2011-04-23 21:40
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
收藏
得分:10 
楼主的程序都调试过吗?

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-04-23 23:03
heimodao
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:88
专家分:172
注 册:2011-4-8
收藏
得分:0 
回复 3楼 ansic
第一个通过,
第二个有警告,但是同上
2011-04-24 12:32
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:10 
程序代码:
void A(int x[][5],int y,int z)    // 这个函数可以写成下面那样
{    
int i,j;
int *xptr=x;
    for(i=0;i<y;i++)   {
        for(j=0;j<z;j++)
        *((xptr+z*i)+j) *= *((xptr+z*i)+j);
}
}
// 这样写比较简单
void A(int x[][5], int y, int z) {
    int *p = &x[0]][0], i;
    for (i = 0; i < y * z; i++, p++) {
        *p *= *p;
    }
}

还有,你这个不叫翻一倍,叫做平方
2011-04-24 21:12
快速回复:一个是数组解法一个是指针解法
数据加载中...
 
   



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

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