这个问题很简单我们直接看代码有好几种解决方式但我的实力实在有限暂时只会这两种请看我博客的大神们见谅
#include<stdio.h> int main() { int a, b, c, d, max=0, min=0;//这里必须要定义max和min的初值否则会显示错误 scanf("%d%d%d%d", &a, &b, &c, &d); if (a >= b) max = a; min = b; if (c >= max) max = c; if (d >= max) max = d; if (min >= c) min = c; if (min >= d) min = d; printf("max=%d,min=%d\n", max, min); return 0; }
运行结果如图
若在定义处没有定义max和min的初值那就会显示下面的错误
这里如果点忽略那也可得到上上图的结果而这个出现的原因就是我们在后面对max和min使用了赋值语句但max和min却没有初值,所以出现了这个错误。
还有一种代码也可实现上面的这个结果而且很简洁
#include<stdio.h> int main() { int a, b, c, d, max = 0, min = 0; scanf("%d%d%d%d", &a, &b, &c, &d); max = a>b ? a : b;//这句的意思就是a大于b的条件是否满足满足则返回a的值不然就返回b的值 if (a > b) min = b; else min = a; max = max>c ? max : d; max = max>d ? max : d; min = min<c ? min : d; min = min<d ? min : d; printf("max=%d,min=%d", max, min); return 0; }
输出结果如上图所示