一个是数组解法一个是指针解法
编写一个程序,声明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);
}
}
***************************************************************