我想这会有所帮助。
“算法”应计算新矩阵的每个新元素。
顺便说一句...
你必须输入矩阵如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