【发布时间】:2012-04-03 20:11:53
【问题描述】:
我正在尝试编写一个函数来分配一个上三角矩阵。它应该返回一个指向分配数组的第一个元素的指针。我还需要使用动态分配来确保分配所需的确切内存量,但我不太确定如何做到这一点......任何提示或建议将不胜感激!我是 C++ 的菜鸟。无论如何,如果有帮助,这是我的代码!
#include <iostream>
using namespace std;
int main ()
{
int a[3][3],i,j; //creating two dimensional array
int d;
int * p;
cout<<"Please Enter the 9 elements of matrix (with spaces): ";
for(i=0;i<3;i++)
for(j=0;j<3;j++)
cin>>d,&a[i][j];
cout<<"\nThe matrix is\n ";
for(i=0;i<3;i++)
{
cout<<"\n";
for(j=0;j<3;j++)
cout<<d,a[i][j];
}
cout<<"\nSetting zero in upper triangular matrix\n";
for(i=0;i<3;i++){
cout<<"\n";
for(j=0;j<3;j++)
if(j>=i)
cout<<d,a[i][j];
else
cout<<0;
}
return 0;
}
【问题讨论】:
-
我不确定您希望像
cin>>d,&a[i][j]这样的事情会做什么...... -
程序正在编译,但它只打印出输入的数组的最后一个元素和突出显示上部矩阵的零...
-
我认为你需要解释一下你认为
cin>>d,&a[i][j]做了什么。它肯定不会像你想象的那样做。 -
cin>>d,&a[i][j];是一个有趣的结构 - 你读入 d 然后得到a[i][j]的地址立即丢弃它。
标签: c++ multidimensional-array matrix