|
Author |
hbghlyj
Posted 2022-6-27 23:33
| a,b,c,d中第二大的数=max(min(max(a,b),max(c,d)),min(a,b),min(c,d))
#include <stdio.h>
int max(int a, int b)
{
return (a>b)?a:b;
}
int min(int a, int b)
{
return (a<b)?a:b;
}
int max3(int a, int b, int c)
{
return max(max(a,b),c);
}
int secondLargest(int i[4])
{
return max3(min(max(i[0],i[1]),max(i[2],i[3])),min(i[0],i[1]),min(i[2],i[3]));
}
int main()
{
int ls[24][4]={{1, 2, 3, 4}, {1, 2, 4, 3}, {1, 3, 2, 4}, {1, 3, 4, 2}, {1, 4, 2, 3}, {1, 4, 3, 2}, {2, 1, 3, 4}, {2, 1, 4, 3}, {2, 3, 1, 4}, {2, 3, 4, 1}, {2, 4, 1, 3}, {2, 4, 3, 1}, {3, 1, 2, 4}, {3, 1, 4, 2}, {3, 2, 1, 4}, {3, 2, 4, 1}, {3, 4, 1, 2}, {3, 4, 2, 1}, {4, 1, 2, 3}, {4, 1, 3, 2}, {4, 2, 1, 3}, {4, 2, 3, 1}, {4, 3, 1, 2}, {4, 3, 2, 1}};
for (int i=0; i<24; i++) {
if(secondLargest(ls[i])==3){printf("%d success\n",i+1);}else{printf("%d fail\n",i+1);}
}
return 0;
}
输出
1 success
2 success
3 success
4 success
5 success
6 success
7 success
8 success
9 success
10 success
11 success
12 success
13 success
14 success
15 success
16 success
17 success
18 success
19 success
20 success
21 success
22 success
23 success
24 success
|