#define?LEN?50?/*數組長度*/
/*錄入矩陣內容*/?
void?inputMatrix?(int?matrix[LEN][LEN],?int?row,?int?col)?{
int?i,j;
printf?("請輸入%d行%d列的矩陣:\n",?row,?col);?
for?(i=0;?i<row;?i++)?{
printf?("第%d行:",?i+1);
for?(j=0;?j<col;?j++)?{
scanf?("%d",?&matrix[i][j]);
}
}
putchar?('\n');
return?1;
}
/*打印矩陣內容*/?
int?printMatrix?(int?matrix[LEN][LEN],?int?row,?int?col)?{
int?i,j;
for?(i=0;?i<row;?i++)?{
for?(j=0;?j<col;?j++)?{
printf?("%d\t",?matrix[i][j]);
}
putchar?('\n');
}
putchar?('\n');
return?1;
}
/*計算處理矩陣內容*/?
int?calcMatrix?(int?matrix[LEN][LEN],?int?row,?int?col)?{
int?mainDiagonalSum,?diagonalSum,?max,?min;
int?i,j;
if?(row!=col)?/*非正方形矩陣返回錯誤*/
return?0;
mainDiagonalSum?=?diagonalSum?=?0;
max?=?min?=?matrix[0][0];
for?(i=0;?i<row;?i++)?{
for?(j=0;?j<col;?j++)?{
if?(i==j)?/*主對角線*/
mainDiagonalSum?+=?matrix[i][j];
if?(i+j==row-1)?/*次對角線*/
diagonalSum?+=?matrix[i][j];
if?(matrix[i][j]>max)?/*求最大值*/
max?=?matrix[i][j];
if?(matrix[i][j]<min)?/*求最小值*/
min?=?matrix[i][j];
}
}
printf?("主對角線之和:\t%d\n",?mainDiagonalSum);
printf?("次對角線之和:\t%d\n",?diagonalSum);
printf?("最大值:\t%d\n",?max);
printf?("最小值:\t%d\n",?min);
putchar?('\n');
return?1;?
}
int?main?(void)?{
int?matrix[LEN][LEN],?row,?col;
row?=?col?=?5;?/*定義矩陣行列數*/
inputMatrix?(matrix,?row,?col);?/*錄入矩陣內容*/?
printMatrix?(matrix,?row,?col);?/*打印矩陣內容*/
calcMatrix?(matrix,?row,?col);?/*計算處理矩陣內容*/
return?0;
}
運行結果
為了簡便,以下運行示意將矩陣設為3行3列,上方源代碼為題主要求的5行5列