1 2 3 4 5 6 7 8 9 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 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150
| #define _CRT_SECURE_NO_WARNINGS #include<stdio.h>
void menu() { printf("****************************\n"); printf("*** 1—>'+' 2—>'-' ***\n"); printf("*** 3—>'*' 4—>'/' ***\n"); printf("*** 5—>'>>' 6—>'<<' ***\n"); printf("*** 7—>'&' 8—>'|' ***\n"); printf("*** 9—>'^' ***\n"); printf("****************************\n"); printf("*** 0.exit ****\n"); printf("****************************\n"); }
int add(int x, int y) { return x + y; }
int sub(int x, int y) { return x - y; }
int mul(int x, int y) { return x * y; }
int divs(int x, int y) { return x / y; }
int Shift_right_bit(int x, int y) { return x >>= y; }
int Shift_left_bit(int x, int y) { return x <<= y; }
int Bitwise_with(int x, int y) { return x & y; }
int Bitwise_or(int x, int y) { return x | y; }
int Bitwise_XOR(int x, int y) { return x ^ y; }
void Print_Binary(unsigned int x) { if (x > 1) { Print_Binary(x >> 1); } putchar((x & 1) ? '1' : '0'); }
void calus(int (*pfs)(int,int)) { int x = 0; int y = 0; int z = 0; printf("请输入操作数"); scanf("%d %d", &x, &y); z = pfs(x,y); printf("十进制结果:%d\n",z); printf("二进制结果:"); Print_Binary(z); printf("\n"); }
int main() { menu(); int input = 0; do { printf("请输入:"); scanf("%d",&input); switch (input) { case 1: calus(add); break; case 2: calus(sub); break; case 3: calus(mul); break; case 4: calus(divs); break; case 5: calus(Shift_right_bit); break; case 6: calus(Shift_left_bit); break; case 7: calus(Bitwise_with); break; case 8: calus(Bitwise_or); break; case 9: calus(Bitwise_XOR); break; case 0: printf("《退出》"); break; default: printf("输入错误!重新输入!"); break; }
} while (input);
return 0; }
|