解题思路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;
    scanf("%d%d%d",&a,&b,&c);
    a>b?a:a=b;
    a>c?a:a=c;
    printf("%d",a);
    return 0;
}
这哪里错了
fu王二狗ck 1年前 回复TA
#include<stdio.h>
int main()
{
    int a,b,c;
    scanf("%d%d%d",&a,&b,&c);
    if(a>b&&a>c)
    {
        printf("%d",a);
    }
    else if(b>a&&b>c)
    {
        printf("%d",b);
    }
    else
    {
        printf("%d",c);
    }
	return 0;
}
TheMagician 1年前 回复TA
借楼,用逻辑运算符求三个数最大值。代码在vs上能用,不知道为什么在c语言网自带的码日运行不了。
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
    int a,b,c,d;
    scanf("%d %d %d",&a,&b,&c);
    a<=b?d=b:d=a;
    d<=c?d=c:d=d;
    printf("%d",d);
    return 0;
}
墨鱼崽崽 1年前 回复TA
@uq_64648141696 这个是可以的,printf("max=%d", max);把max=去掉就好了。
墨鱼崽崽 1年前 回复TA
@几拙 你这个有一个问题,开始如果是20 10 30,根据if条件,会只看第一个if,a>b,那么就直接输出a了,也就是20
1年前 回复TA
@几拙 输入的要是数组,不是数字
几拙 1年前 回复TA
请问为什么显示答案错误
#include<stdio.h>
int main()
{
    int max,a,b,c;
    scanf("%d %d %d", &a,&b,&c);
    if(a>b){
        max=a;
    } else if (b>c) {max=b;
    } else {max=c;
    }
    
    printf("%d", max);
	return 0;
}
橘子辉煌 1年前 回复TA
为什么%d之间不用,隔开。我看有的题错误就是因为没有隔开啊
uq_64648141696 1年前 回复TA
为什么这样不行
#include<stdio.h>
int main()
{
	int arr[3] = { 0 };
	int i = 0;
	for (i = 0; i < 3; i++)
	{
		scanf("%d",&arr[i]);
	}
	int max=arr[0];
	for (i = 0; i < 3; i++)
	{
		if (arr[i] > max)
			max = arr[i];
	}
	printf("max=%d", max);

		return 0;
}
uq_96585060749 2年前 回复TA
@AR983黯 第三个表达式好像可以改成 a