用c语言写的简单计算器

这是自己在学习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 }