Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

81 linhas
2.0KB

  1. #include <stdio.h>
  2. int sv[8];
  3. unsigned uv[8];
  4. char buf[40];
  5. int cnt[16];
  6. int fib(n)
  7. int n;
  8. {
  9. if (n < 2) return n;
  10. return fib(n - 1) + fib(n - 2);
  11. }
  12. int sgn(a)
  13. int a;
  14. {
  15. if (a < 0) return 0 - 1;
  16. if (a == 0) return 0;
  17. return 1;
  18. }
  19. unsigned umax(a, b)
  20. unsigned a, b;
  21. {
  22. if (a > b) return a;
  23. return b;
  24. }
  25. strl(s)
  26. char *s;
  27. {
  28. int n;
  29. n = 0;
  30. while (*s) { n++; s++; }
  31. return n;
  32. }
  33. main()
  34. {
  35. int i, j, k, a, b;
  36. unsigned int uu, vv;
  37. int t;
  38. sv[0] = 0 - 32767; sv[1] = 0 - 5; sv[2] = 0 - 1; sv[3] = 0;
  39. sv[4] = 1; sv[5] = 5; sv[6] = 255; sv[7] = 32767;
  40. uv[0] = 0; uv[1] = 1; uv[2] = 5; uv[3] = 255; uv[4] = 256; uv[5] = 32767; uv[6] = 32768; uv[7] = 65535;
  41. for (k = 0; k < 16; k++) cnt[k] = 0;
  42. for (i = 0; i < 8; i++)
  43. for (j = 0; j < 8; j++) {
  44. a = sv[i]; b = sv[j];
  45. if (a < b) cnt[0]++;
  46. if (a > b) cnt[1]++;
  47. if (a <= b) cnt[2]++;
  48. if (a >= b) cnt[3]++;
  49. if (a == b) cnt[4]++;
  50. if (a != b) cnt[5]++;
  51. uu = uv[i]; vv = uv[j];
  52. if (uu < vv) cnt[6]++;
  53. if (uu > vv) cnt[7]++;
  54. if (uu <= vv) cnt[8]++;
  55. if (uu == vv) cnt[10]++;
  56. if (uu != vv) cnt[11]++;
  57. if (a < b && uu < vv) cnt[12]++;
  58. if (a > b) cnt[13]++; else if (uu > vv) cnt[13]++;
  59. if (a < 5) cnt[14]++;
  60. if (uu > 255) cnt[15]++;
  61. }
  62. for (k = 0; k < 16; k++) printf("%d ", cnt[k]);
  63. printf("\n");
  64. t = 0;
  65. for (i = 0; i < 8; i++) t = t + sgn(sv[i]) * (i + 1);
  66. printf("sgn %d fib %d umax %u\n", t, fib(10), umax(40000, 3));
  67. strcpy(buf, "hello world");
  68. printf("len %d %s\n", strl(buf), buf);
  69. t = 0;
  70. for (i = 0; i < 100; i++) {
  71. switch (i % 5) {
  72. case 0: t = t + 1; break;
  73. case 1: t = t + 2; break;
  74. case 3: t = t - 1; break;
  75. default: t = t + 3;
  76. }
  77. }
  78. printf("sw %d mul %d %d %d div %d %d\n", t, 123 * 45, 7 * (0 - 9), 300 * 200, 1000 / 7, 1000 % 7);
  79. }

Powered by TurnKey Linux.