解题思路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 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; }
我感觉不是很严谨啊,假如出现90 90 60这种情况呢,亦或者 60 60 60 这种情况呢,上面的这个程序只能比较三个不同大小的情况吧,是我理解有问题嘛,我想的是即便是三个数,只要有两个数不同,都能比较,就好像90 90 60,90就是这组数的最大值,60 60 60,三个都相同,就不能比较大小。
#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; } 为啥这样不行啊
1 2024-03-07 17:49:11 |
#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 函数。 //看清题目要求
Hardwork_Man 2024-03-08 15:05:13 |
首先,你的输入函数写错了是scanf(),然后printf()里的中文删掉,这个是脚本评审很智障,输出必须和题目一模一样才会Pass
#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; } 这种方法可以吗
#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; } 这哪里错了
菜旺 2024-01-22 21:24:35 |
这里的语法没有问题,但是在三目运算符的使用中,你需要注意其中的运算优先级问题。 在这里,你是想在判断 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; }
#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; }
借楼,用逻辑运算符求三个数最大值。代码在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; }
请问为什么显示答案错误 #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; }