【C语言编程练习】C语言输出三个数中值最大者

题目

编写一个C程序,运行时输入a,b,c三个值,输出其中值最大者

题目分析

题目可分为三步:
1、使用scanf函数,输入三个数,这儿认为题目要求的是整型的
2、判断三个数里面谁打,可以使用if语句,或者?运算符都可以
先将a的值赋值给max,然后判断max和b哪个大,如果b大,则更新max的值,再跟C做一次判断
3、使用printf输出得到的最大数

程序

方式一,使用if语句进行判断

#include "stdio.h"

int main()
{
    int a,b,c;
    int max;
    scanf("%d %d %d",&a,&b,&c);
    max=a;
    if(b>max) max=b;
    if(c>max) max=c;
    printf("%d",max);
}

方式二,使用?运算
使用?运算符先判断a和b的大小,当a大时,在判断a和c的大小,b大时同理。

#include "stdio.h"

int main()
{
    int a,b,c;
    int max;
    scanf("%d %d %d",&a,&b,&c);
    max=(a>b)?(a>c?a:c):(b>c?b:c);
    printf("%d",max);
}

C语言,你可以通过递归的方式来找出统计二叉树值最大的节点。首先,你需要定义一个结构体表示二叉树的节点,每个节点包含一个值和两个指向左右子节点的指针。这里是一个简单的示例: ```c #include <stdio.h> #include <stdlib.h> typedef struct TreeNode { int val; struct TreeNode* left; struct TreeNode* right; } TreeNode; // 递归函数,用于查找最大节点 int findMax(TreeNode* node) { // 如果当前节点为空,返回整型最小值作为默认 if (node == NULL) return INT_MIN; // 如果左子节点的值大于当前节点,说明最大值在左子树 int leftMax = findMax(node->left); // 否则,如果右子节点的值更大,更新最大值 int rightMax = findMax(node->right); // 返回当前节点值和左右子树的最大值之间的较大者 return node->val > leftMax ? node->val : rightMax; } int main() { // 初始化一个简单的二叉树实例 TreeNode* root = malloc(sizeof(TreeNode)); root->val = 5; root->left = malloc(sizeof(TreeNode)); root->left->val = 3; root->left->right = malloc(sizeof(TreeNode)); root->left->right->val = 6; root->right = malloc(sizeof(TreeNode)); root->right->val = 8; root->right->left = malloc(sizeof(TreeNode)); root->right->left->val = 4; root->right->right = malloc(sizeof(TreeNode)); root->right->right->val = 9; int maxVal = findMax(root); printf("The maximum value in the binary tree is %d.\n", maxVal); free(root); // 别忘了释放内存 return 0; } ``` 在这个例子,`findMax`函数会遍历整个树,每次都比较当前节点的值和子节点的最大值,并返回最终找到的最大值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值