- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
#include <stdio.h>
#include <inttypes.h>
#define REORDER3(b1,b2,b3,a1,a2,a3) do {uint32_t b1_tmp = a1; uint32_t b2_tmp = a2; b3 = a3; b1 = b1_tmp; b2 = b2_tmp;} while (0)
void uintprint3(uint32_t *a)
{
printf("%u %u %u\n", a[0], a[1], a[2]);
}
void sort3(uint32_t a[3] )
{
if (a[0] > a[1])
{
if (a[1] > a[2])
{
REORDER3 (
a[0], a[1], a[2],
a[2], a[1], a[0]);
return;
}
else
{
if (a[0] > a[2])
{
REORDER3 (
a[0], a[1], a[2],
a[1], a[2], a[0]);
return;
}
else
{
REORDER3 (
a[0], a[1], a[2],
a[1], a[0], a[2]);
return;
}
}
}
else
{
if (a[1] <= a[2])
{
return; //NO REORDER
}
else
{
if (a[0] <= a[2])
{
REORDER3 (
a[0], a[1], a[2],
a[0], a[2], a[1] );
return;
}
else
{
REORDER3 (
a[0], a[1], a[2],
a[2], a[0], a[1] );
return;
}
}
}
}
int main(void)
{
uint32_t a[] = {0, 1, 2};
uint32_t b[] = {0, 2, 1};
uint32_t c[] = {1, 2, 0};
uint32_t d[] = {1, 0, 2};
uint32_t e[] = {2, 0, 1};
uint32_t f[] = {2, 1, 0};
sort3(a); sort3(b); sort3(c); sort3(d); sort3(e); sort3(f);
uintprint3(a);
uintprint3(b);
uintprint3(c);
uintprint3(d);
uintprint3(e);
uintprint3(f);
return 0;
}
Вот как сортировать надо. А то всякие жабаскриптики http://govnokod.ru/20308 непонятные.
Это говно кстати можно автосгенерировать для произвольной длины, но мне что-то западло этим заниматься
j123123 01.07.2016 19:45 # 0
тройной swap
bormand 01.07.2016 19:47 # +2
3.14159265 01.07.2016 20:12 # +2
Bobik 01.07.2016 21:21 # +2
3_dar 01.07.2016 21:43 # 0
ЧТО ЭТО?
dxd 01.07.2016 21:55 # +3
guest 09.07.2016 09:40 # 0
dxd 09.07.2016 12:14 # 0
j123123 09.07.2016 22:59 # +1
CHayT 11.07.2016 12:36 # +2