C语言恶搞小代码,建议发给你的好基友(doge)

最近我的好朋友天天各种方法坑我叫他baba,今天我用过一个代码直接还击。

首先,先用上这几个数据库:

#include<stdio.h>
#include<windows.h>
#include<stdlib.h>

以后注意看到window.h的数据库慎重运行啊

接下来的代码部分很简单

int main()
{
	printf("请注意你的电脑将在1min之内关机,请叫爸爸来取消关机\n");
	char ch[30] = { 0 };
	system("shutdown -s -t 60");//倒计时60秒后关机
	scanf("%s",ch);
	char password[30] = "爸爸";//这里可以改一下,for example:我是傻子,但第3行要随之改动
	if (strcmp(ch, password) == 0)
	{
		system("shutdown -a");//取消关机指令
		printf("好儿子,成功取消关机");
	}
	return 0;
}

可以用exe格式发送,不然你朋友一眼就看出来有猫腻了

不建议在你朋友做重要文件时运行,否则......(你懂的)

假设你已经定义好了二叉树的结构体 `TreeNode`,其中包含了指向左右子树的指针 `left` 和 `right`,以及存储节点值的变量 `value`。那么,你可以按照以下方式编写求二叉树某结点的左兄弟结点的 C 语言代码: ```c #include <stdio.h> #include <stdlib.h> // 定义二叉树结点 typedef struct TreeNode { int value; struct TreeNode* left; struct TreeNode* right; } TreeNode; // 查找某结点的左兄弟结点 TreeNode* findLeftSibling(TreeNode* root, TreeNode* node) { if (node == NULL || node == root) { // 如果传入的结点为空或根结点,则返回 NULL return NULL; } TreeNode* parent = NULL; TreeNode* current = root; while (current != NULL && current != node) { // 查找 node 的父结点 parent = current; if (node->value < current->value) { current = current->left; } else { current = current->right; } } if (current == NULL) { // 如果没有找到 node,则返回 NULL return NULL; } if (parent == NULL) { // 如果 node 没有左兄弟,则返回 NULL return NULL; } if (parent->left == node) { // 如果 node 是其父结点的左子结点,则返回其父结点的右子结点 return parent->right; } // 如果 node 是其父结点的右子结点,则返回其父结点的左子结点 return parent->left; } // 测试代码 int main() { // 构建一棵二叉树 TreeNode* root = (TreeNode*)malloc(sizeof(TreeNode)); root->value = 5; root->left = (TreeNode*)malloc(sizeof(TreeNode)); root->left->value = 3; root->left->left = (TreeNode*)malloc(sizeof(TreeNode)); root->left->left->value = 1; root->left->left->left = NULL; root->left->left->right = NULL; root->left->right = (TreeNode*)malloc(sizeof(TreeNode)); root->left->right->value = 4; root->left->right->left = NULL; root->left->right->right = NULL; root->right = (TreeNode*)malloc(sizeof(TreeNode)); root->right->value = 7; root->right->left = (TreeNode*)malloc(sizeof(TreeNode)); root->right->left->value = 6; root->right->left->left = NULL; root->right->left->right = NULL; root->right->right = (TreeNode*)malloc(sizeof(TreeNode)); root->right->right->value = 8; root->right->right->left = NULL; root->right->right->right = NULL; // 测试查找某结点的左兄弟结点 TreeNode* node = root->left->right; // 选择二叉树中的某个结点 TreeNode* leftSibling = findLeftSibling(root, node); if (leftSibling == NULL) { printf("该结点没有左兄弟结点\n"); } else { printf("该结点的左兄弟结点的值为:%d\n", leftSibling->value); } return 0; } ``` 在上面的代码中,我们定义了 `findLeftSibling` 函数来查找某个结点的左兄弟结点。该函数接收两个参数:二叉树的根结点 `root` 和要查找左兄弟结点的结点 `node`。首先,我们检查 `node` 是否为空或是否为根结点,如果是,则直接返回 NULL。接着,我们使用循环来查找 `node` 的父结点 `parent`,并根据 `node` 的值与当前结点的值比较来判断是向左子树还是向右子树查找。如果找到了 `node`,则判断其是否有左兄弟结点,如果有,则返回左兄弟结点,否则返回 NULL。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值