第一步只是最簡單的常用例子
在使用多值作為副函式的參數,且輸出單值
要將多個值輸出,最簡單的方法就是將答案集合成一個陣列(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];
}