-4
我的任務是替換對角線矩陣上的向量元素和元素。矢量由用戶輸入並且矩陣是隨機的。例如,我寫的矢量:使用malloc和指針替換矩陣中的向量
1 2 3
和隨機矩陣是
7 0 0
0 3 0
0 0 8
我一定要得到這個
1) 7 3 8
2)
1 0 0
0 2 0
0 0 3
它的第一部分我得到了,但第二個我」 m堆疊。這裏是進入向量:
int size;
std::cout << ("Enter the dimentoinal of vector and matrix (enter one number): ");
std::cin >> size;
int * arrayPtr = (int*) calloc(size,sizeof(int));
if (arrayPtr == NULL) exit (1);
for (int ix = 0; ix < size; ix++)
{
std::cout << "Enter element #" << ix<< " ";
std::cin >> arrayPtr[ix];
}
system ("clear") ;
std::cout << "\n\nResulting vector is:\n[ ";
for (int ix = 0; ix < size; ix++)
{
std::cout << arrayPtr[ix] << " ";
}
cout << "]\n\n\n" ;
這裏是代碼,完全不工作(在屏幕上是不正確的結果):
cout << "The new matrix is :\n" ;
int * matr_n = (int*) calloc(size,sizeof(int));
cout << "\n" ;
for (int ix = 0 ; ix<size; ix++)
{
matr_n = &arrayPtr[ix] ;
cout << *matr_n << " " ;
for (int i = 0; i<size; i++)
{
cout << "\n" ;
for (int j = 0; j<size; j++)
{
if (i==j)
{
cout << *matr_n << " " ;
}
else
cout << 0 << " " ;
}
}
}
我知道問題出在使用指針或的malloc /釋放calloc功能,但初學者很難趕上它。 你能解決它嗎?
** **縮進你爲基督的緣故代碼。 – gsamaras
*爲什麼*你想在C++中使用'malloc'?這幾乎總是一個壞主意 – UnholySheep
*「你可以修復它,請嗎?」 - 使用'std :: vector'。 –