鱼C论坛

 找回密码
 立即注册
查看: 1750|回复: 6

[已解决]c语言新手,想知道求三个数最大值的代码哪里错了,求大佬指点。

[复制链接]
发表于 2019-10-30 00:27:27 | 显示全部楼层 |阅读模式

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

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

x
#include <stdio.h>
int main()
{
        int a,b,c,e;
        int max;
          a=3;
          b=4;
      c=5;
  if(a>b)
          max=a;
  else
          max=b;
  if(e>c)
          e=e;
  else
          e=c;
  printf("max=%d",max);
}
最佳答案
2019-10-30 00:47:35
本帖最后由 bin554385863 于 2019-10-30 00:57 编辑


你应该学过排列组合吧?
你这样两两相比吃力不讨好.
如果用C(m,2)表示从m个数字里面取2个比较大小,那么你要比较的次数C(m, 2) = m! /((m-2)! * 2!),
也就是说你比较的数据越多你要比较的次数越多.........

假设给你20个数据,照你这么个比较法
那得写190个if语句 .

如果比较的数据多的话使用数组排序是一个好选择
#include <stdio.h>
int main(int argc, char const *argv[])
{
        int a = 3, b = 4, c = 5, e = 0;
        e = e > a ? e : a;
        e = e > b ? e : b;
        e = e > c ? e : c;
        printf("MAX_VALUE = %d", e);
        return 0;
}
--------------------------------------------------
E:\Users\86184\Documents\Code>c:\Users\86184\.vscode\extensions\ms-vscode.cpptools-0.26.1\debugAdapters\bin\WindowsDebugLauncher.exe --stdin=Microsoft-MIEngine-In-hqv4nzu4.stq --stdout=Microsoft-MIEngine-Out-ozfilazf.ge4 --stderr=Microsoft-MIEngine-Error-fhgnm0qr.i1k --pid=Microsoft-MIEngine-Pid-tfvxupmf.mht "--dbgExe=E:\My Program\MinGW\bin\gdb.exe" --interpreter=mi
MAX_VALUE = 5
E:\Users\86184\Documents\Code>


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-10-30 00:47:35 | 显示全部楼层    本楼为最佳答案   
本帖最后由 bin554385863 于 2019-10-30 00:57 编辑


你应该学过排列组合吧?
你这样两两相比吃力不讨好.
如果用C(m,2)表示从m个数字里面取2个比较大小,那么你要比较的次数C(m, 2) = m! /((m-2)! * 2!),
也就是说你比较的数据越多你要比较的次数越多.........

假设给你20个数据,照你这么个比较法
那得写190个if语句 .

如果比较的数据多的话使用数组排序是一个好选择
#include <stdio.h>
int main(int argc, char const *argv[])
{
        int a = 3, b = 4, c = 5, e = 0;
        e = e > a ? e : a;
        e = e > b ? e : b;
        e = e > c ? e : c;
        printf("MAX_VALUE = %d", e);
        return 0;
}
--------------------------------------------------
E:\Users\86184\Documents\Code>c:\Users\86184\.vscode\extensions\ms-vscode.cpptools-0.26.1\debugAdapters\bin\WindowsDebugLauncher.exe --stdin=Microsoft-MIEngine-In-hqv4nzu4.stq --stdout=Microsoft-MIEngine-Out-ozfilazf.ge4 --stderr=Microsoft-MIEngine-Error-fhgnm0qr.i1k --pid=Microsoft-MIEngine-Pid-tfvxupmf.mht "--dbgExe=E:\My Program\MinGW\bin\gdb.exe" --interpreter=mi
MAX_VALUE = 5
E:\Users\86184\Documents\Code>


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-30 00:59:09 | 显示全部楼层
本帖最后由 jackz007 于 2019-10-30 01:00 编辑
#include <stdio.h>
int main()
{
        int a , b , c , max             ;
        a = 3                           ;
        b = 4                           ;
        c = 5                           ;
        if(a > b && a > c) max = a      ;
        else if(b > a && b > c) max = b ;
        else max = c                    ;
        printf("max = %d\n" , max)      ;
}

    数据比较操作,也可以采用三目操作符,能够稍微简化一下:
#include <stdio.h>
int main()
{
        int a , b , c , max             ;
        a = 3                           ;
        b = 4                           ;
        c = 5                           ;
        max = (a > b) ? a : b           ;
        if(max < c) max = c             ;
        printf("max = %d\n" , max)      ;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-10-30 08:16:04 | 显示全部楼层
bin554385863 发表于 2019-10-30 00:47
你应该学过排列组合吧?
你这样两两相比吃力不讨好.
如果用C(m,2)表示从m个数字里面取2个比 ...

会啦会啦,谢谢啊!
我还想问一下最后加个return 0是干嘛的呀。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-10-30 08:16:43 | 显示全部楼层
jackz007 发表于 2019-10-30 00:59
数据比较操作,也可以采用三目操作符,能够稍微简化一下:

会啦会啦,谢谢呀!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-30 08:46:59 | 显示全部楼层
秦九域 发表于 2019-10-30 08:16
会啦会啦,谢谢啊!
我还想问一下最后加个return 0是干嘛的呀。

int main()的返回值,不然编译器会报警告
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-11-11 23:39:06 | 显示全部楼层
yuweb 发表于 2019-10-30 08:46
int main()的返回值,不然编译器会报警告

好的好的,谢谢啦!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-16 12:57

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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