c语言,编辑一个程序,输入一个三阶矩阵,存入数组,判断矩阵的行和、列和、对角和是否相等。
#定义?n?三
#定义?m?三
int?abs(浮动?x)
{
if(x & lt;0.0f)?回归?-x;
不然呢?回归?x;
}
int?主()
{
浮动?M[N][M];
浮动?sumr[N]={0.0f},?sumc[M]={0.0f},diag[N]={0.0f},sumd=0.0f,sumd2 = 0.0f?//
int?I,j;
printf("输入?%d?*?%d?矩阵?:\n ",?N,N);
//创建?然后呢。计算?总数
为了什么?(我?=?0;?我?& lt?n;?++i)
{
为了什么?(j=?0;?j?& lt?m;?++j)
{
scanf("%f ",& ampm[I][j]);
sumr[i]?+=?m[I][j];//sum?的?行
sumc[j]?+=?m[I][j];//sum?的?列
if(i==j)?诊断[i]?+= m[I][j];//对角线?元素
}
}
//打印?
int?flag = 1;?//?
printf("sum?的?rows \ n ");
为了什么?(我?=?0;?我?& lt?n;?++i)
{
printf("%7.2f\n ",sumr[I]);
如果(旗帜?& amp& amp?我& ltN-1)?
旗帜?=?旗帜& amp& amp(ABS(sumr[I+1]-sumr[I])& lt;1e-10);
}
printf("\nsum?的?列:\ n ");
为了什么?(j?=?0;?j?& lt?m;?++j)
{
printf("%7.2f ",sumc[j]);
如果(旗帜?& amp& amp?j & ltM-1)?
旗帜?=?旗帜& amp& amp(ABS(sumc[j+1]-sumc[j])& lt;1e-10);
}
printf(" \ n对角线?元素:\ n ");
const?int?k?=?(N & ltm)?n:M;
为了什么?(我?=?0;?我?& lt?k;?++i)
{
printf("%7.2f ",diag[I]);
sumd?+= diag[I];
}
printf(" \ t-& gt;总和:“);
printf("%7.2f\n ",sumd);
//反转?斜的
printf(" \ n反转?对角线:\ n ");
为了什么?(我?=?k-1;?我?& gt=0;?-我)
{
printf("%7.2f ",m[K-I-1][I]);
sumd2?+= m[K-I-1][I];
}
printf(" \ t-& gt;总和:“);
printf("%7.2f\n ",sum D2);
如果?(旗帜?& amp& amp?ABS(sumc[M-1]-sumd)& lt;1e-10?& amp& amp?ABS(sumc[M-1]-sum D2)& lt;1e-10)
?旗帜?=?1;
不然呢?旗帜?=?0;
if(标志)
printf(" \ n?答?魔法?矩阵!?\ n ");
其他
printf("\nNOT?答?魔法?矩阵!?\ n ");
回归?0;
}
/*结果:
输入?3?*?3?矩阵?:
8?1?六
3?5?七
4?9?2
sum?的?行
15.00
15.00
15.00
sum?的?列:
15.00?15.00?15.00
对角线?元素:
8.005.002.00->总和:?15.00
反转?对角线:
6.005.004.00->总和:?15.00
是吗?答?魔法?矩阵!
*/