|
- #include <stdio.h>
- 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);
- }
|