鱼C论坛

 找回密码
 立即注册
查看: 2807|回复: 2

[已解决]大佬好!我输入三个数打出的最大值和最小值都是一样的!!!我觉得我没有错啊》

[复制链接]
发表于 2019-8-21 23:41:43 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include <stdio.h>
void main()
{
        int a,b,c,max,min;
        printf("please input three numbers:\n");
        scanf("%d%d%d",&a,&b,&c);
        if (a>b)
        {
                max=a,min=b;
        }
        else
        {
                max=b,min=a;
        }
        if (max<c)
        {
                max=c;
        }
        else if(min>c);
        {
                min=c;
        }
        printf("max=%d\nmin=%d",max,min);
}
最佳答案
2019-8-22 00:11:36
本帖最后由 jackz007 于 2019-8-22 00:13 编辑

      这一句有问题:
  1.         else if(min>c);  /* 这句末尾的分号必须去掉 */

  2.         {
  3.                 min=c;
  4.         }
复制代码


        由于这个分号的存在,将导致 min 的值注定等于 c。

  1. #include <stdio.h>

  2. main(void)
  3. {
  4.         int a , b , c , max , min                ;
  5.         printf("please input three numbers:\n")  ;
  6.         scanf("%d%d%d" , & a , & b , & c )       ;
  7.         if (a > b) max = a , min = b             ;
  8.         else max = b , min = a                   ;
  9.         if(max < c) max = c                      ;
  10.         if(min > c) min = c                      ;
  11.         printf("max = %d\nmin = %d" , max , min) ;
  12. }
复制代码


    也可以考虑采用三目运算符:
  1. #include <stdio.h>
  2. main(void)
  3. {
  4.         int a , b , c , max , min                  ;
  5.         printf("please input three numbers:\n")    ;
  6.         scanf("%d%d%d", & a , & b , & c)           ;
  7.         max = a > b ? a : b                        ;
  8.         max = c > max ? c : max                    ;
  9.         min = a < b ? a : b                        ;
  10.         min = c < min ? c : min                    ;
  11.         printf("max = %d\nmin = %d\n" , max , min) ;
  12. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-8-22 00:09:13 | 显示全部楼层
else if(min>c);最后这个分号去掉
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-22 00:11:36 | 显示全部楼层    本楼为最佳答案   
本帖最后由 jackz007 于 2019-8-22 00:13 编辑

      这一句有问题:
  1.         else if(min>c);  /* 这句末尾的分号必须去掉 */

  2.         {
  3.                 min=c;
  4.         }
复制代码


        由于这个分号的存在,将导致 min 的值注定等于 c。

  1. #include <stdio.h>

  2. main(void)
  3. {
  4.         int a , b , c , max , min                ;
  5.         printf("please input three numbers:\n")  ;
  6.         scanf("%d%d%d" , & a , & b , & c )       ;
  7.         if (a > b) max = a , min = b             ;
  8.         else max = b , min = a                   ;
  9.         if(max < c) max = c                      ;
  10.         if(min > c) min = c                      ;
  11.         printf("max = %d\nmin = %d" , max , min) ;
  12. }
复制代码


    也可以考虑采用三目运算符:
  1. #include <stdio.h>
  2. main(void)
  3. {
  4.         int a , b , c , max , min                  ;
  5.         printf("please input three numbers:\n")    ;
  6.         scanf("%d%d%d", & a , & b , & c)           ;
  7.         max = a > b ? a : b                        ;
  8.         max = c > max ? c : max                    ;
  9.         min = a < b ? a : b                        ;
  10.         min = c < min ? c : min                    ;
  11.         printf("max = %d\nmin = %d\n" , max , min) ;
  12. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-5-15 23:55

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表