[英]Writing a function to allocate an upper triangular matrix
我正在嘗試編寫一個 function 來分配一個上三角矩陣。 它應該返回指向分配數組的第一個元素的指針。 我還需要使用動態分配來確保分配所需的確切數量 memory 但我不太確定該怎么做......任何提示或建議將不勝感激。 我是 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;
}
根據 oli 的評論,我認為你正在尋找
辛 >> d; a[i][j] = d;
對比
cin>>d,&a[i][j];
我建議閱讀類似.... http://www.cplusplus.com/doc/tutorial/basic_io/
這是你的第一個問題
動態分配是通過 new 和 malloc 之類的代碼完成的,請嘗試閱讀...
http://www.cplusplus.com/doc/tutorial/dynamic/
至於如何存儲你的上矩陣......我建議只使用普通的二維矩陣,它可能會更好地與大多數矩陣庫一起工作。
祝你作業順利。
通常,在分配大小為 N 的上三角矩陣時,您會分配 N + N-1... + 1(查找整數之和)元素,然后您需要創建訪問機制(可能是此處的目的)以便當你想要元素 M(i,j) 你得到第 i 行第 j 列的元素,盡管事實上(幾乎)一半的元素丟失了; 或者在使用它的任何矩陣操作代碼中使用矩陣時手動執行此操作。
您將一維數組視為前 N 個元素是第一行,接下來的 N-1 個元素是第二行(右 N-1 個元素),依此類推。
因為這個問題看起來和聞起來都像家庭作業,所以我認為這是盡可能多的提示。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.