You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C语言中获取三个数最大值后补充求最小值的正确实现方式

问题根因
  • 现有最大值逻辑本身存在漏洞:你将max初始值设为固定值0,且没有将输入的第一个变量a纳入比较范围,如果输入的三个数全为负数,或者a是三个数中的最大值,得到的max结果也会错误。
  • 最小值始终返回0的直接原因:你仅对min做了初始化为0的操作,全程没有添加任何更新min值的判断逻辑,程序最终只会输出初始的0值。
正确实现代码

最稳妥的实现方式是先将max、min初始化为第一个输入值a,再依次和剩余两个值比较更新,兼容所有正负整数场景:

#include <stdio.h>
int main() {
  int a, b, c, max, min;
  printf("Enter 3 numbers please : ");
  scanf("%d%d%d", &a, &b, &c);
  // 先初始化最大、最小值为第一个输入值,避免固定初始值带来的边界问题
  max = a;
  min = a;
  // 对比b更新最值
  if (b > max) max = b;
  if (b < min) min = b;
  // 对比c更新最值
  if (c > max) max = c;
  if (c < min) min = c;
  printf("Max Num is : %d \n", max);
  printf("Min Num is : %d \n", min);
  return 0;
}

内容的提问来源于stack exchange,提问作者user14947646

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 15:06:02