#include int sv[8]; unsigned uv[8]; char buf[40]; int cnt[16]; int fib(n) int n; { if (n < 2) return n; return fib(n - 1) + fib(n - 2); } int sgn(a) int a; { if (a < 0) return 0 - 1; if (a == 0) return 0; return 1; } unsigned umax(a, b) unsigned a, b; { if (a > b) return a; return b; } strl(s) char *s; { int n; n = 0; while (*s) { n++; s++; } return n; } main() { int i, j, k, a, b; unsigned int uu, vv; int t; sv[0] = 0 - 32767; sv[1] = 0 - 5; sv[2] = 0 - 1; sv[3] = 0; sv[4] = 1; sv[5] = 5; sv[6] = 255; sv[7] = 32767; uv[0] = 0; uv[1] = 1; uv[2] = 5; uv[3] = 255; uv[4] = 256; uv[5] = 32767; uv[6] = 32768; uv[7] = 65535; for (k = 0; k < 16; k++) cnt[k] = 0; for (i = 0; i < 8; i++) for (j = 0; j < 8; j++) { a = sv[i]; b = sv[j]; if (a < b) cnt[0]++; if (a > b) cnt[1]++; if (a <= b) cnt[2]++; if (a >= b) cnt[3]++; if (a == b) cnt[4]++; if (a != b) cnt[5]++; uu = uv[i]; vv = uv[j]; if (uu < vv) cnt[6]++; if (uu > vv) cnt[7]++; if (uu <= vv) cnt[8]++; if (uu == vv) cnt[10]++; if (uu != vv) cnt[11]++; if (a < b && uu < vv) cnt[12]++; if (a > b) cnt[13]++; else if (uu > vv) cnt[13]++; if (a < 5) cnt[14]++; if (uu > 255) cnt[15]++; } for (k = 0; k < 16; k++) printf("%d ", cnt[k]); printf("\n"); t = 0; for (i = 0; i < 8; i++) t = t + sgn(sv[i]) * (i + 1); printf("sgn %d fib %d umax %u\n", t, fib(10), umax(40000, 3)); strcpy(buf, "hello world"); printf("len %d %s\n", strl(buf), buf); t = 0; for (i = 0; i < 100; i++) { switch (i % 5) { case 0: t = t + 1; break; case 1: t = t + 2; break; case 3: t = t - 1; break; default: t = t + 3; } } printf("sw %d mul %d %d %d div %d %d\n", t, 123 * 45, 7 * (0 - 9), 300 * 200, 1000 / 7, 1000 % 7); }