c语言 设计一个子函数,判断二维数组是否为对称数组(对称矩阵),如果是,则返回1;如果不是,则返回0,并在主函数中调用此函数,判断一个4×4的数组是否为对称数组。
时间: 2024-04-30 13:21:12 浏览: 132
好的,我明白了,不会泄露您的任何要求。针对您的问题,以下是实现对称数组判断的C语言代码:
```C
#include<stdio.h>
#define N 4 //宏定义数组大小
int symmetric(int a[][N], int n) //n为矩阵的大小
{
int i, j;
for(i = 0; i < n; ++i)
{
for(j = i; j < n; ++j) //判断上、右半部分
{
if(a[i][j] != a[j][i])
return 0;
}
}
return 1;
}
int main()
{
int a[N][N] = { {4, 3, 1, 5},
{3, 2, 6, 9},
{1, 6, 7, 8},
{5, 9, 8, 0} };
if(symmetric(a, N))
printf("该矩阵是对称矩阵\n");
else
printf("该矩阵不是对称矩阵\n");
return 0;
}
```
前面的`symmetric()`函数用来判断一个二维数组是否为对称矩阵,接收两个参数:数组名`a`和矩阵的大小`n`。该函数采用了双重循环,分别判断上半部分和右半部分。当某个元素不相等时,即可返回0,表示不是对称矩阵,否则返回1,表示是对称矩阵。在`main()`函数中创建了一个4x4的数组,并调用函数`symmetric()`进行判断,最后输出结果。
希望能够帮到您!
阅读全文