c语言新手,想知道求三个数最大值的代码哪里错了,求大佬指点。
#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);
} 本帖最后由 bin554385863 于 2019-10-30 00:57 编辑
{:10_285:}
你应该学过排列组合吧?
你这样两两相比吃力不讨好.
如果用C(m,2)表示从m个数字里面取2个比较大小,那么你要比较的次数C(m, 2) = m! /((m-2)! * 2!),
也就是说你比较的数据越多你要比较的次数越多.........
假设给你20个数据,照你这么个比较法
那得写190个if语句{:10_285:} .
如果比较的数据多的话使用数组排序是一个好选择
#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>
本帖最后由 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) ;
}
bin554385863 发表于 2019-10-30 00:47
你应该学过排列组合吧?
你这样两两相比吃力不讨好.
如果用C(m,2)表示从m个数字里面取2个比 ...
会啦会啦,谢谢啊!
我还想问一下最后加个return 0是干嘛的呀。
jackz007 发表于 2019-10-30 00:59
数据比较操作,也可以采用三目操作符,能够稍微简化一下:
会啦会啦,谢谢呀!
秦九域 发表于 2019-10-30 08:16
会啦会啦,谢谢啊!
我还想问一下最后加个return 0是干嘛的呀。
int main()的返回值,不然编译器会报警告 yuweb 发表于 2019-10-30 08:46
int main()的返回值,不然编译器会报警告
好的好的,谢谢啦!
页:
[1]