编写程序,求二维数组中的全部元素之和(用指针实现)

如题所述

#include <stdio.h>
int main()
{int n,m,i,j,s=0,k=0;
 scanf("%d%d",&n,&m);
 int a[n][m],*p=&a[0][0];
 for(i=0;i<n;i++)
  for(j=0;j<m;j++)
    a[i][j]=++k;
 for(;p<a[0]+n*m;p++)s+=*p;
 printf("sum=%d\n",s);
 return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-03-21
int sum(int *p, int m, int n)
{
int i, s = 0;
for (i = 0; i < m*n; i ++)
s += p[i];
return s;
}
m n 为二维数组的行列,调用格式:
int s1, a[3][4];
s1 = sum(&a[0][0], 3, 4)本回答被提问者采纳
第2个回答  2012-05-12
#include<iostream>
using namespace std;
const int M=3;
void main(){
int a[M][M]={{12,23,35},{13,14,12},{15,45,67}};
int *p;
int temp=0;
p=a[0];
for(int i=0;i<M*M;i++)
temp+=*(p+i);
cout<<temp<<endl;
}
相似回答