c++ 一个double二维数组用指针表示各个元素,输出结果不对,求大神指点下。

#include <iostream>
using namespace std;
void pointer_array(double array[][5],int n)
{
double *p;
int i,j;
for(i = 0;i < n;i++)
{
p = &array[0][0];
for(j=0;j < 5;j++)
{
std::cout << *(p+i)+j << " ";
}
cout << std::endl;
}
}
#ifndef WEBSUBMIT
main()
{
double array[3][5] = {{1,2,3,4,5},{1,2,3,4,5},{1,2,3,4,5}};
int n = 3;
pointer_array(array, 3);
return 0;
}
#endif //WEBSUBMIT
上面的程序的运行结果是:

1 2 3 4 5
2 3 4 5 6
3 4 5 6 7
不知道哪里错了,求大神纠正。

void pointer_array(double array[][5],int n)
{
double (*p)[5] = array;
int i,j;
for(i = 0;i < n;i++)
{
for(j=0;j < 5;j++)
{
std::cout << *(*(p+i)+j)  << " ";
}
cout << std::endl;
}
}



或者:

void pointer_array(double array[][5],int n)
{
double *p;
int i,j;
for(i = 0;i < n;i++)
{
p = &array[0][0];
for(j=0;j < 5;j++)
{
std::cout << *(p+i*5+j)  << " ";
}
cout << std::endl;
}
}

温馨提示:内容为网友见解,仅供参考
无其他回答

c++ 一个double二维数组用指针表示各个元素,输出结果不对,求大神指点下...
void pointer_array(double array[][5],int n){double (*p)[5] = array;int i,j;for(i = 0;i < n;i++){for(j=0;j < 5;j++){std::cout << *(*(p+i)+j) << " ";}cout << std::endl;}} 或者:void pointer_array(double array[][5],int n){double *p;int i...

C++求助:随机生成二维数组,并求每列元素的平方和,请大家帮我看看输出结...
printf("%d\\n",SumOfSquares[j]);这句话要用%lf输出 你要是想修饰结果的话,可以用 %.0lf 进行输出

...用指针复制一个二维数组,输出时只能用指针表示元素,求大神指点。
double new_array[3][4]){ double(*p)[4]; p = new double [3][4]; p = array; for(int i = 0; i < 3; i++) { for(int j = 0; j < 4; j++) { \/\/ cout << p[i][j]<<" "; cout<<*(*(p+i)+j)<<...

用C++编写一个程序,计算一个二维数组中所有元素的平均值(用指针...
{ float a[M][N]={{1,2,3},{4,5,6},{7,8,9}}; \/\/定义一个M行N列的二维数组.float ave=0; \/\/累加总成绩,计算平均值.\/*方法1: 转化成一维指针*\/ float *p=(float *)a;for(int i = 0; i < M * N; ++i){ cout << *( p + i ) << " "; \/\/输出二维...

C++ 如何给double型二维数组动态初始化
double **array;array = new double*[row];for (int i = 0; i < row; ++i){ array[i] = new double[col];} 其中row为行数,col为列数

C++中二维数组作为参数传递到一个函数
方法2、指向一个有5个元素一维数组的指针。void print_b(int (*a)[5], int n, int m){ int i, j;for(i = 0; i < n; i++){ for(j = 0; j < m; j++)printf("%d ", a[i][j]);printf("\\n");} } 方法3、利用数组是顺序存储的特性。void print_c(int *a, int n...

VFP中如何用列表框显示一个二维数组的各个元素的值?
1.)将LIST1的ROWSOURCE和ROWSOURCETYPE属性还原为默认值;把LIST1的COLUMNCOUNT属性设置为14(即设定列数,否则只显示第一列数据)2.)在FORM的INIT事件里定义公共数组a:public array a(10,14)n=0 for i=1 to 10 for k=1 to 14 store n to a(i,k)n=n+1 endfor endfor 3.)在FORM的...

...数组并为其赋初值,定义一个指向该二维数组的指针?
int main(int argc,char *argv[]){ int a[4][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16},b[4][4];int (*pa)[4],i,j,k;for(pa=a,i=0;i<4;i++)\/\/将a赋给b for(j=0;j<4;b[i][j++]=*(*(pa+i)+j));printf("Output array A using it's pointer...

求C++高手!!!
7.请编写一个函数int fun(int*s,int t,int *k),用来求出数组的最大元素在数组中的下标并存放在k所指的存储单元中。 例如,输入如下整数:876 675 896 10l 30l 40l 980 43l 451 777 ,则输出结果为:6,980。***8.编写函数fun,函数的功能是:根据以下公式计算s,计算结果作为函数值返回;n通过形参传入。

C语言问题 求助
代码:include <stdio.h> void main(){ double a=10,b=1,sum[2]={0,0}; int i;for (i=0;i<30;i++) { sum[0]+=a; sum[1]+=b; b*=2; } printf("陌生人共给了富翁%.0f万元\\n",sum[0]); printf("富翁共给了陌生人%.6f万元\\n",sum[1]\/1000000.0);} 结果...

相似回答