这是自己在学习C语言,凭借自己的兴趣,将课本的知识运用后整理的关于C语言计算器的代码。计算器实现的功能有:加、减、乘、除、求余。功能简单,但对于初学者的我来说能把它写出来,排除每个错误依旧是个难题。前后两种代码是由自己所学东西的质量决定的,如有错误,请前辈指出。
最初版本的计算器:
1 #include<stdio.h> 2 3 int checkPassword(); 4 5 int add(int x,int y); 6 7 int sub(int x,int y); 8 9 int multi(int x,int y); 10 11 float quo(float x1,float y1); 12 13 int com(int x,int y); 14 15 int x,y; 16 17 int result; 18 19 int select; 20 21 float result1; 22 23 float x1,y1; 24 25 int success,psw; 26 27 int a; 28 29 int i; 30 31 int t; 32 33 34 35 36 37 void main() 38 39 { 40 41 printf("请输入密码: "); 42 43 i=0; 44 45 do{ 46 47 48 49 scanf("%d",&a); 50 51 52 53 if( a!=1234 && i<2) 54 55 printf("请重新输入密码: "); 56 57 else 58 59 i=3; 60 61 i++; 62 63 }while( i<=2); 64 65 if(a==1234) 66 67 { 68 69 for(t=1;t!=6;t=select) 70 71 { 72 73 74 75 76 77 78 79 printf("+=============================+ "); 80 81 printf("+======计=算=器=主=菜=单======+ "); 82 83 printf("+=============================+ "); 84 85 printf("+==========1、 加法==========+ "); 86 87 printf("+==========2、 减法==========+ "); 88 89 printf("+==========3、 乘法==========+ "); 90 91 printf("+==========4、 除法==========+ "); 92 93 printf("+==========5、 求余==========+ "); 94 95 printf("+==========6、 退出==========+ "); 96 97 printf("+=============================+ "); 98 99 100 101 102 103 printf("请输入你的选择: "); 104 105 scanf("%d",&select); 106 107 108 109 switch(select) 110 111 { 112 113 114 115 case 1: 116 117 printf("请输入两个数: "); 118 119 scanf("%d%d",&x,&y); 120 121 result=add(x,y); 122 123 printf("%d+%d=%d ",x,y,result); 124 125 break; 126 127 case 2: 128 129 printf("请输入两个数: "); 130 131 scanf("%d%d",&x,&y); 132 133 result=sub(x,y); 134 135 printf("%d-%d=%d ",x,y,result); 136 137 break; 138 139 case 3: 140 141 printf("请输入两个数: "); 142 143 scanf("%d%d",&x,&y); 144 145 result=multi(x,y); 146 147 printf("%d*%d=%d ",x,y,result); 148 149 break; 150 151 case 4: 152 153 printf("请输入两个数: "); 154 155 scanf("%f%f",&x1,&y1); 156 157 result1=quo(x1,y1); 158 159 printf("%f/%f=%f ",x1,y1,result1); 160 161 break; 162 163 case 5: 164 165 printf("请输入两个数: "); 166 167 scanf("%d%d",&x,&y); 168 169 result=com(x,y); 170 171 printf("%d/%d=%d ",x,y,result); 172 173 break; 174 175 case 6: 176 177 break; 178 179 default: 180 181 printf("请输入1~5之间的数 "); 182 183 break; 184 185 186 187 188 189 } 190 191 } 192 193 } 194 195 } 196 197 int add(int x,int y) 198 199 { 200 201 int sum; 202 203 sum=x+y; 204 205 return sum; 206 207 } 208 209 int sub(int x,int y) 210 211 { 212 213 int sub; 214 215 sub=x-y; 216 217 return sub; 218 219 } 220 221 int multi(int x,int y) 222 223 { 224 225 int multi; 226 227 multi=x*y; 228 229 return multi; 230 231 } 232 233 float quo(float x,float y) 234 235 { 236 237 float quo; 238 239 quo=x/y; 240 241 return quo; 242 243 } 244 245 int com(int x,int y) 246 247 { 248 249 int com; 250 251 com=x%y; 252 253 return com; 254 255 } 256 257 int checkPassword( int psw) 258 259 { 260 261 if(psw==1234) 262 263 success=1; 264 265 else 266 267 success=-1; 268 269 return success; 270 271 }
改版后的计算器:
1 #include<stdio.h> 2 3 int yanzheng(int ); 4 5 void caidan(); 6 7 void jiafa(int,int); 8 9 void jianfa(int,int); 10 11 void chengfa(float,float); 12 13 void chufa(float,float); 14 15 void mo(int,int); 16 17 18 19 void main(){ 20 21 int x,m; 22 23 int y; 24 25 float a,b; 26 27 printf("请输入密码: "); 28 29 scanf("%d",&x); 30 31 m=yanzheng(x); 32 33 if(m==1){ 34 35 caidan(); 36 37 //int y; 38 39 //float a,b; 40 41 for(;y!=6;){ 42 43 printf("请输入选项: "); 44 45 scanf("%d",&y); 46 47 if(y>=1 && y<6){ 48 49 printf("请输入要运算的两个数: "); 50 51 scanf("%f%f",&a,&b); 52 53 } 54 55 56 57 switch(y){ 58 59 case 1 :jiafa(a,b);break; 60 61 case 2 :jianfa(a,b);break; 62 63 case 3 :chengfa(a,b);break; 64 65 case 4 :chufa(a,b);break; 66 67 case 5 :mo(a,b);break; 68 69 case 6 :break; 70 71 default : printf("选项输入错误!请重试 ");break; 72 73 } 74 75 } 76 77 } 78 79 } 80 81 82 83 84 85 int yanzheng(int x){ 86 87 int i,m; 88 89 for(i=1,m=0;i<3;i++){ 90 91 if(x==1234){ 92 93 m=1; 94 95 break; 96 97 } 98 99 printf("请重新出入密码:"); 100 101 scanf("%d",&x); 102 103 104 105 } 106 107 return m; 108 109 } 110 111 112 113 void caidan(){ 114 115 printf("+=============================+ "); 116 117 printf("+======计=算=器=主=菜=单======+ "); 118 119 printf("+=============================+ "); 120 121 printf("+==========1、 加法==========+ "); 122 123 printf("+==========2、 减法==========+ "); 124 125 printf("+==========3、 乘法==========+ "); 126 127 printf("+==========4、 除法==========+ "); 128 129 printf("+==========5、 求余==========+ "); 130 131 printf("+==========6、 退出==========+ "); 132 133 printf("+=============================+ "); 134 135 } 136 137 138 139 void jiafa(int x,int y){ 140 141 int sum; 142 143 sum=x+y; 144 145 printf("%d ", sum); 146 147 } 148 149 150 151 void jianfa(int x,int y){ 152 153 int cha; 154 155 cha=x-y; 156 157 printf("%d ", cha); 158 159 } 160 161 162 163 void chengfa(float x,float y){ 164 165 float ji; 166 167 ji=x*y; 168 169 printf("%f ", ji); 170 171 } 172 173 174 175 void chufa(float x,float y){ 176 177 float shang; 178 179 shang=x/y; 180 181 printf("%f ", shang); 182 183 } 184 185 186 187 void mo(int x,int y){ 188 189 int mo; 190 191 mo=x%y; 192 193 printf("%d ", mo); 194 195 }