1樓:匿名使用者
用結構體過載運算子把:62616964757a686964616fe59b9ee7ad9431333339666161
struct maxtrix
maxtrix(int x)
{maxtrix ret;
ret.l=l;
for(int i=0;i
編寫c++程式,計算兩個矩陣的乘積,矩陣相乘設計成函式形式
2樓:匿名使用者
這得用到線性函式啊,都快忘沒了;
先分析一下矩陣相乘的演算法:
a[m][n] * b[n][p] = c[m][p]
其中c[i][j] = a[i][0] * b[0][j] + ... + a[i][n-1] * b[n-1][j]
現在我們就可以來寫程式了
#include
#include
#include
#include
using namespace std;
#define colum_num 2
typedef struct array
stru_array;
int func(stru_array *parray_1, stru_array *parray_2, stru_array **out_array);
int main(int argc, char **argv)
, };
int b[2][colum_num] = , };
int *print_tmp = null;
stru_array local_array1 = ;// 1 2
// 3 4
stru_array local_array2 = ;// 4 3
// 2 1
stru_array *local_out_array = null;
#if 0
printf("%d %d %d %d %d %d\n",
local_array1.parray[0][0],
local_array1.parray[0][1],
local_array1.parray[1][0],
local_array1.parray[1][1], local_array1.row, local_array1.row);
printf("%d %d %d %d %d %d\n",
local_array2.parray[0][0],
local_array2.parray[0][1],
local_array2.parray[1][0],
local_array2.parray[1][1], local_array2.row, local_array2.row);
#endif
print_tmp = (int *)local_out_array->parray;
//printf("%d %d \n", print_tmp[0], print_tmp[1]);
//printf("%d %d \n", print_tmp[2], print_tmp[3]);
cout free(local_out_array); }int func(stru_array *parray_1, stru_array *parray_2, stru_array **out_array) *out_array = (stru_array *)malloc(sizeof(stru_array)); if (null == *out_array) memset(*out_array, 0, sizeof(stru_array)); (*out_array)->parray = (int (*)[colum_num])malloc(parray_2->colum * parray_1->row); if (null == (*out_array)->parray) memset((*out_array)->parray, 0, (parray_2->colum * parray_1->row) * 4); ptmp = (*out_array)->parray; //i為新生成矩陣的行,j為新生成矩陣的列 for (i = 0; i < parray_1->row; i++) }ptmp++; }return 0; }1 2 3 4與4 3 2 1相乘 執行結果正確: ./array 8 5 20 13 求c++兩矩陣相乘** 3樓:匿名使用者 #include using namespace std; void main() ;int b[4][3]=; int data[3][3]; cout<<"a:\n"; //輸出原陣列aint i,j,k; for(i=0;i<3;i++) cout< }cout<<"b:\n"; //輸出原陣列bfor(i=0;i<4;i++) cout< }for(i=0;i<3;i++) //向新陣列中存值}cout<<"data:\n"; //輸出新陣列for(i=0;i<3;i++) cout< 如下 include include using namespace std class maxtrix private int maxtrix 2 3 public maxtrix for int i 0 i 2 i for int j 0 j 3 j maxtrix i j 3 i j 1 vo... 這個是完全取決於bai你的需求。如果du 你只是做控制同一個資料zhi源使用的,就可以dao一個執行緒,分 內別在收到不同的訊息,容呼叫不同的函式。畢竟你只有一個鍵盤,不會真的同時收到兩個事件。這種構架下面,兩個函式必須比較短不能有堵塞,或者等待 大多數情況是這樣的 另外一種情況是,當你的處理量比較... 按insert鍵 因為你啟用了覆蓋模式 從插入的位置開始,後面的字母依次向後移一位,例如a 100 a 99 a 99 a 98 好吧,我以為是程式設計的內容,原來是過程,按 insert 鍵就好了 鍵盤上的 insert 鍵一下。把後面的字母往後移動一個位置,再在原來的位置填入字母 c 程式設計中...程式設計序,用成員函式過載運算子和將兩個矩陣(這兩個矩陣均為2行3列)相加和相減
c 多執行緒同時執行兩個函式該怎樣程式設計啊
用c 程式設計的時候在兩個之間插入字母后面的就被代替了怎麼辦