第一步只是最簡單的常用例子
在使用多值作為副函式的參數,且輸出單值
要將多個值輸出,最簡單的方法就是將答案集合成一個陣列(1*N)
我使用的方法是
int* caseB(int a, int b){ int* ans = new int[2]; ans[0] = a+b; ans[1] = a-b; return ans; }
在輸入的部分,由於只是需要他們的值
dataC並不需要用pointer宣告
反之,輸出單陣列同上述方法
int dataC[2] = {1, 2}; int* ansC = new int[2]; ansC = caseC(&dataC[0]); delete ansC;
int* caseC(int a[]){ int* ans = new int[2]; ans[0] = a[0]+a[1]; ans[1] = a[0]-a[1]; return ans; }
陣列維度是1*N,矩陣則是N*N
在操作上就稍為困難
如果只是想使用單矩陣、多矩陣
也能用此範例修改,這裡將介紹兩個矩陣的輸入輸出
int dataD1[2][2] = { {1, 2},{3, 4} }; int dataD2[2][2] = { {4, 3},{2, 1} }; int ansD1[2][2] = { {0, 0},{0, 0} }; int ansD2[2][2] = { {0, 0},{0, 0} }; caseD(&dataD1[0], &dataD2[0], &ansD1[0], &ansD2[0]);
void caseD(int a[][2], int b[][2], int ans1[][2], int ans2[][2]){ ans1[0][0] = a[0][0]+b[0][0]; ans1[0][1] = a[0][1]+b[0][1]; ans1[1][0] = a[1][0]+b[1][0]; ans1[1][1] = a[1][1]+b[1][1]; ans2[0][0] = a[0][0]*b[0][0]; ans2[0][1] = a[0][1]*b[0][1]; ans2[1][0] = a[1][0]*b[1][0]; ans2[1][1] = a[1][1]*b[1][1]; }