c语言实现:任意输入一个二维的4*4的矩阵,判读这个是不是对称的二维矩阵(即a[i][j]=a[j][i])
时间: 2024-01-05 22:03:01 浏览: 86
#include<stdio.h>
int main(){
int a[4][4],flag=1,i,j;
printf("请输入一个4*4的矩阵:\n");
for(i=0;i<4;i++){
for(j=0;j<4;j++){
scanf("%d",&a[i][j]);
}
}
for(i=0;i<4;i++){
for(j=0;j<i;j++){
if(a[i][j]!=a[j][i]){
flag=0;
break;
}
}
if(flag==0) break;
}
if(flag==0) printf("这不是对称的二维矩阵");
else printf("这是对称的二维矩阵");
return 0;
}
相关问题
输入一棵二叉树,判读是否为二叉搜索树,c语言实现
好的,以下是C语言实现:
```c
#include<stdio.h>
#include<stdlib.h>
#include<stdbool.h>
#define MAX_N 10000 // 二叉树结点最大个数
struct TreeNode {
int val;
struct TreeNode *left;
struct TreeNode *right;
};
int idx = 0; // 当前二叉树结点的下标
int arr[MAX_N]; // 用于保存中序遍历的结果
// 二叉树的中序遍历
void inorder(struct TreeNode* root) {
if(root == NULL) return;
inorder(root->left); // 左子树
arr[idx++] = root->val; // 根结点
inorder(root->right); // 右子树
}
// 判断数组是否是升序排列
bool isAscending(int* arr, int size) {
for(int i = 1; i < size; i++) {
if(arr[i] <= arr[i-1]) {
return false;
}
}
return true;
}
// 判断二叉树是否为二叉搜索树
bool isValidBST(struct TreeNode* root) {
idx = 0; // 每次运行函数前重置全局变量
inorder(root); // 中序遍历二叉树
return isAscending(arr, idx); // 判断结果数组是否升序排列
}
int main() {
// 测试用例
struct TreeNode* root = (struct TreeNode*)malloc(sizeof(struct TreeNode));
root->val = 5;
root->left = (struct TreeNode*)malloc(sizeof(struct TreeNode));
root->left->val = 1;
root->left->left = NULL;
root->left->right = NULL;
root->right = (struct TreeNode*)malloc(sizeof(struct TreeNode));
root->right->val = 4;
root->right->left = (struct TreeNode*)malloc(sizeof(struct TreeNode));
root->right->left->val = 3;
root->right->left->left = NULL;
root->right->left->right = NULL;
root->right->right = (struct TreeNode*)malloc(sizeof(struct TreeNode));
root->right->right->val = 6;
root->right->right->left = NULL;
root->right->right->right = NULL;
bool result = isValidBST(root);
printf("%s\n", result ? "true" : "false");
return 0;
}
```
上述代码通过中序遍历二叉树得到一个有序数组,然后判断该数组是否为升序排列,如果是,则该二叉树为二叉搜索树,否则不是。
使用C语言写一个函数 判读输入的字符是否为 数字 大写字母 小写字母
下面是一个简单的 C 语言函数,用来判断输入的字符是否为数字、大写字母或小写字母:
```c
#include <stdio.h>
#include <ctype.h>
int is_digit_or_letter(char c) {
if (isdigit(c) || isupper(c) || islower(c)) {
return 1;
} else {
return 0;
}
}
int main() {
char c;
printf("请输入一个字符:");
scanf("%c", &c);
if (is_digit_or_letter(c)) {
printf("是数字、大写字母或小写字母\n");
} else {
printf("不是数字、大写字母或小写字母\n");
}
return 0;
}
```
这个函数使用了 ctype.h 头文件中的 isdigit、isupper 和 islower 函数,它们分别用来判断字符是否为数字、大写字母或小写字母。函数 is_digit_or_letter 接受一个字符参数 c,如果 c 是数字、大写字母或小写字母,则返回 1,否则返回 0。在 main 函数中,我们输入一个字符,调用 is_digit_or_letter 函数进行判断,并输出结果。
阅读全文