解题思路1:

        如果说要解这道题,还是很简单粗暴的:

        本题的三个数比大小的要求就是,比另外两个数都大,即a>b和a>c同时满足。同时满足就是和:&&

if (a>b&&a>c) printf("%d",a);

        所以,写三条条件判断就可以了。

参考代码1:

#include<stdio.h>
int main()
{
  int a,b,c;
  scanf("%d%d%d",&a,&b,&c);
  if (a>b&&a>c) printf("%d",a);
  if (b>a&&b>c) printf("%d",b);
  if (c>a&&c>b) printf("%d",c);
  return 0;
}


解题思路2:

        因为只要求最大值,不需要排序,所以,先两个数比较,第三个数只要跟前两个数中大的比,谁大就谁最大。

参考代码2:

#include<stdio.h>
int main()
{
  int a,b,c;
  scanf("%d%d%d",&a,&b,&c);
  if (a>b) 
  {
      if (c>a) printf("%d",c);
      if (c<a) printf("%d",a);
  }
  if (b>a)
  {
    if (c>b) printf("%d",c);
    if (c<b) printf("%d",b);
  }
   return 0;
}


解题思路3:

        在2的思路上,改代码,就是擂台法,定义变量的时候多定义一个d,谁大谁是d:

参考代码3:

#include<stdio.h>
int main()
{
  int a,b,c,d;
  scanf("%d%d%d",&a,&b,&c);
  if(a>b) d=a;
  else d=b;
  if(c>d) d=c;
  printf("%d",d);
  return 0;
}



点赞(0)
 

0.0分

59 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 39 条评论

小队长厄德高 1月前 回复TA
#include<stdio.h>
int main()
{
    int a,b,c,max;
    printf("请输入三个整数");
    scanf("%d%d%d",&a,&b,&c);
    if(a>b)
    max=a;
    else max=b;
    if(c>max)
    max=c;
    printf("%d",max);
    return 0;
}
请问这个为什么会答案错误
怃罹 1月前 回复TA
@从心开始 3个数一样输出任何一个好像都是答案呐
忘昔 2月前 回复TA
#include <stdio.h>
int main()
{
	int a,b,c,max;
	scanf("%d %d %d",&a,&b,&c);
	max=(a>b?a:b)>c?(a>b?a:b):c;
	printf("%d",max);
	return 0;
}
从心开始 9月前 回复TA
我感觉不是很严谨啊,假如出现90 90 60这种情况呢,亦或者 60 60 60 这种情况呢,上面的这个程序只能比较三个不同大小的情况吧,是我理解有问题嘛,我想的是即便是三个数,只要有两个数不同,都能比较,就好像90 90 60,90就是这组数的最大值,60 60 60,三个都相同,就不能比较大小。
Hardwork_Man 10月前 回复TA
@misai 首先,你的输入函数写错了是scanf(),然后printf()里的中文删掉,这个是脚本评审很智障,输出必须和题目一模一样才会Pass
1 10月前 回复TA
@misai #include<stdio.h>   int main()   {       int a, b, c;       scanf("%d %d %d", &a, &b, &c);      int max;       max = a > b ? a : b;       max = max > c ? max : c;       printf("%d", max);          return 0;   } //scanf_s 函数而不是标准的 scanf 函数。 //看清题目要求
misai 10月前 回复TA
#include<stdio.h>
int main()
{
	int a, b, c;//定义三个变量
	scanf_s("%d %d %d", &a, &b, &c); //输入三个随机整数
	int max;
	max = a > b ? a: b;
	max = max > c ? max : c;
	printf("最大值为%d", max);

	return 0;

	}
为啥这样不行啊
dotcpp0733527 10月前 回复TA
#include<stdio.h>
int main()
{
    int a,b,c,max;
    scanf("%d%d%d",&a,&b,&c);
    max=t(a,b);
    max=t(c,max);
    printf("max=%d",max);
    return 0;
}
int t(int a,int b)
{
    int max;
    if(a<b) max=b;
    else max=a;
    return max;
     
}
这种方法可以吗
菜旺 12月前 回复TA
@麦克斯韦 这里的语法没有问题,但是在三目运算符的使用中,你需要注意其中的运算优先级问题。  在这里,你是想在判断 a 是否大于 b 的前提下,将 a 与 b 比较并更新 a 的值,如果 a 小于 b 则将 a 更新为 b。但是上述语句使用了三目运算符 ? :,因为 = 运算符的优先级比 ? : 运算符低,所以在计算时会先计算 a ? a : b 的结果,然后再赋值给 a。因此可能不会获得正确的结果你可以这样写#include<stdio.h>  int main() {     int a, b, c;     scanf("%d%d%d", &a, &b, &c);     a = (a > b) ? ((a > c) ? a : c) : ((b > c) ? b : c);     printf("%d", a);     return 0; }
灰白的中亚卫矛 1年前 回复TA
@uq_64648141696 我也用的这个方法,显示:Alarm clock怎么回事