我想這會有所幫助。
「算法」應計算新矩陣的每個新元素。
順便說一句...
你必須輸入矩陣如firstMatrix
。
步驟一:firstMatrix[0][0]
和firstMatrix[0][0]
第二步:從firstMatrix
第一排和firstMatrix
第一欄的第一個元素獲得的第一個元素重複「第一步」爲firstMatrix
每一行和col :
/* row */
temp_array_1[i] = firstMatrix[i][j]
和
/* col */
temp_array_2[i] = firstMatrix[j][i]
步驟三:
for (i = 0; i < 4; i++)
{
if (temp_array_1[i] <= temp_array_2[i])
{ min_array[i] = temp_array_1[i]; }
else
{ min_array[i] = temp_array_2[i]; }
}
第四步:取得min_array[i]
的最大值。
這裏緊跟我的源代碼...
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char **argv)
{
int i;
int j;
float firstMatrix[4][4] = {
{ 1, 0.6, 0.3, 0.8 },
{ 0.6, 1, 0.1, 0.4 },
{ 0.3, 0.1, 1, 0.5 },
{ 0.8, 0.4, 0.5, 1 }
};
float max = 0.0;
float temp_array_1[4];
float temp_array_2[4];
float min_array[4];
for (i = 0; i < 4; i++)
{
/* row */
temp_array_1[i] = firstMatrix[0][i];
/* col */
temp_array_2[i] = firstMatrix[i][0];
}
for (i = 0; i < 4; i++)
{
if (temp_array_1[i] <= temp_array_2[i])
{ min_array[i] = temp_array_1[i]; }
else
{ min_array[i] = temp_array_2[i]; }
for (i = 0; i < 4; i++)
{
if (min_array[i] > max)
{ max = min_array[i]; }
}
}
fprintf(stdout, "\nMax element: %.1f\n", max);
return 0;
}
的一點是,我不能夠「迭代」本作的firstMatrix
每個元素。
散發出來,從這個烏煙瘴氣的輸出矩陣是這樣的:
outputMatrix[4][4] = {
{ 1.0, 0.6, 0.5, 0.8 },
{ 0.6, 1.0, 0.4, 0.6 },
{ 0.5, 0.4, 1.0, 0.5 },
{ 0.8, 0.6, 0.5, 1.0 }
}
這是回答,還是對Roberto Gomez的迴應?如果是後者,你應該用這些信息來編輯你的問題,不要把它作爲新的答案發布。 – LittleBobbyTables 2013-05-06 19:37:22