解题思路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分
79 人评分
为什么这样不行 #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; }
#include<stdio.h> int main() { int a; int b; int c; scanf("%d%d%d", &a, &b, &c); if(a<=b) a=b; if(a<=c); a=c; printf("%d",a); return 0; }
#include <stdio.h> int main() { int a, b, c; scanf("%d%d%d", &a, &b, &c); if (a > b) { if (a > c) printf("%d", a); else printf("%d", c); } else if (a < b) { if (b > c) printf("%d", b); else printf("%d", c); } return 0; }
快乐水 2022-12-18 13:02:50 |
我服了啊我这样写是错的
#include <stdio.h> #include <stdlib.h> #include <math.h> int main() { int a, b, c, max; scanf("%d%d%d", &a, &b, &c); max = ((a > b ? a : b) > (b > c ? b : c) ? (a > b ? a : b) : (b > c ? b : c)); printf("%d\n",max); } 我感觉三目运算符是最易理解的
uq_96585060749 2023-01-06 00:06:04 |
第三个表达式好像可以改成 a
#include<stdio.h> int main() { int a,b,c,d; scanf("%d%d%d",&a,&b,&c); d=a>b?a:b; d=d>c?d:c; printf("%d",d); return 0; }
#include <stdio.h> int main() { int a,b,c,max; scanf("%d %d %d",&a,&b,&c); max=a; if(b>max){ max=b; }if(c>max){ max=c; } printf("%d",max); }