簡體   English   中英

寫一個function分配一個上三角矩陣

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM