苏州网站建设万户,惠州东莞网站建设价格,wordpress支付插件绿色,宣传册设计模板给定程序中#xff0c;函数fun的功能是#xff1a;判定形参a所指的NxN#xff08;规定N为奇数#xff09;的矩阵是否是魔方#xff0c;若是#xff0c;函数返回值为1#xff1b;不是#xff0c;函数返回值为0。“幻方的判定条件是#xff1a;矩阵每…给定程序中函数fun的功能是判定形参a所指的NxN规定N为奇数的矩阵是否是魔方若是函数返回值为1不是函数返回值为0。“幻方的判定条件是矩阵每行、每列、主对角线及反对角线上元素之和都相等。
例如以下3x3的矩阵就是一个魔方 4 9 2 3 5 7 8 1 6
#include stdio.h
#include stdlib.h
#define N 3int fun(int (*a)[N])
{int i, j, m1, m2, row, colum;m1 m2 0;for (i 0; i N; i){j N - i - 1;m1 a[i][i];m2 a[i][j];}if (m1 ! m2){return 0;}for (i 0; i N; i){row colum 0; // Initialize row and colum to 0for (j 0; j N; j){row a[i][j];colum a[j][i];}if ((row ! colum) || (row ! m1)){ // Fix logical conditionreturn 0;}}return 1; // Fix return value
}int main()
{int x[N][N], i, j;printf(输入一个3×3的矩阵\n);for (i 0; i N; i){for (j 0; j N; j){scanf(%d, x[i][j]);}}if (fun(x)){printf(这个矩阵是幻方\n);}else{printf(这个矩阵不是幻方\n);}system(pause);return 0;
}
函数fun通过计算矩阵的对角线和反角线以及计算每行和每列的元素之和来判断是否满足魔方的条件。具体来说
使用变量m1和m2来分别记录主对角线和反角线上的元素之和。遍历主对角线和反角线将对应位置的元素加到m1和m2中。如果m1又m2不一致说明不是魔方直接返回0。遍历每行和每列将元素之和与第一行的元素之和m1进行比较如果不成立说明不是魔方返回0。如果以上条件都满足函数返回1表示矩阵是魔方。在main函数中用户输入一个3×3的矩阵然后调用fun函数判断是否是魔方并输出相应的结果。