switch 练习

  1 /*
  2 1. 键盘输入 年 月 日,计算这一天是这一年的第几天
  3 2. 输入两个运算数(x 和 y)和 一个运算符(op),并计算 x op y 的值.(+ - * / % )
  4 3. 将第二题替换成 if else 表达式。
  5 4. 输入一个月份,输出该月对应的季节。
  6 5. 输入一个成绩,计算该成绩属于哪个等级。(90 分到 100 分:A,80 分到 89 分:B,60 到 7
  7 分:C,60 分以下:D。
  8 6. 编程实现当 x < 0 的时候 y = -1; x == 0 的时候 y = 0; x > 0 的时候,y = 1;
  9 7. 运输公司对所运货物实行分段计费。设运输里程为 s,计费情况如下:设每公里每吨基本
 10 运费为 p,货物重量为 w,折扣为 d,总运费 f 的计算公式为:f=p*w*s*(1-d)。设计程序,
 11 当输入 p、w 和 s 后,计算运费 f。
 12 s<250 不打折扣
 13 250<=s<500 2%折扣
 14 500<=s<1000 5%折扣
 15 1000<=s<2000 8%折扣
 16 2000<=s<3000 10%折扣
 17 3000<=s 15%折扣
 18 9.定期存款利息计算器
 19 输入存款金额并选择存款种类,计算出利息和本息合计。
 20 提示:利息=金额×年利率×存期(单位:年,3 个月为 0.25 年,6 个月为 0.5 年)。
 21 例如:1000 元存 6 个月,利息=1000×0.033×0.5=16.5 元
 22 年利率:3 个月 3.10%,6 个月 3.30%,一年 3.50%,二年 4.40%,三年 5.00%,五年 5.50%。
 23 */
 24 
 25 
 26 #define _CRT_SECURE_NO_WARNINGS
 27 #include <stdio.h>
 28 //键盘输入 年 月 日,计算这一天是这一年的第几天
 29 void days(int year,int mouth,int day) {
 30     //int year, mouth, day,flag=0; //2020年1月7日 
 31     //先判断是否是闰年共366天 1-12月分别为31天,29天,31天,30天,31天,30天,31天,31天,30天,31天,30天,31天
 32     //判断月份
 33     if (year % 4 == 0 && year %100 != 0|| year % 400 == 0) {
 34         switch (mouth) {
 35         case 1:
 36             printf("第%d天", day);
 37             break;
 38         case 2:
 39             printf("第%d天", 31+day);
 40             break;
 41         case 3:
 42             printf("第%d天", 31+29+day);
 43             break;
 44         case 4:
 45             printf("第%d天", 31 + 29 +31+ day);
 46             break;
 47         case 5:
 48             printf("第%d天", 31 + 29 + 31 +30+ day);
 49             break;
 50         case 6:
 51             printf("第%d天", 31 + 29 + 31 + 30+31 + day);
 52             break;
 53         case 7:
 54             printf("第%d天", 31 + 29 + 31 + 30 + 31+30 + day);
 55             break;
 56         case 8:
 57             printf("第%d天", 31 + 29 + 31 + 30 + 31 + 30+31 + day);
 58             break;
 59         case 9:
 60             printf("第%d天", 31 + 29 + 31 + 30 + 31 + 30 + 31+30 + day);
 61             break;
 62         case 10:
 63             printf("第%d天", 31 + 29 + 31 + 30 + 31 + 30 + 31 + 30+31 + day);
 64             break;
 65         case 11:
 66             printf("第%d天", 31 + 29 + 31 + 30 + 31 + 30 + 31 + 30 + 31+30 + day);
 67             break;
 68         case 12:
 69             printf("第%d天", 31 + 29 + 31 + 30 + 31 + 30 + 31 + 30 + 31 + 30 +31+ day);
 70             break;
 71         default:
 72             printf("错误—输入错误\n");
 73 
 74         }
 75     }
 76     else {
 77         switch (mouth) {
 78         case 1:
 79             printf("第%d天", day);
 80             break;
 81         case 2:
 82             printf("第%d天", 31 + day);
 83             break;
 84         case 3:
 85             printf("第%d天", 31 + 28 + day);
 86             break;
 87         case 4:
 88             printf("第%d天", 31 + 28 + 31 + day);
 89             break;
 90         case 5:
 91             printf("第%d天", 31 + 28 + 31 + 30 + day);
 92             break;
 93         case 6:
 94             printf("第%d天", 31 + 28 + 31 + 30 + 31 + day);
 95             break;
 96         case 7:
 97             printf("第%d天", 31 + 28 + 31 + 30 + 31 + 30 + day);
 98             break;
 99         case 8:
100             printf("第%d天", 31 + 28 + 31 + 30 + 31 + 30 + 31 + day);
101             break;
102         case 9:
103             printf("第%d天", 31 + 28 + 31 + 30 + 31 + 30 + 31 + 30 + day);
104             break;
105         case 10:
106             printf("第%d天", 31 + 28 + 31 + 30 + 31 + 30 + 31 + 30 + 31 + day);
107             break;
108         case 11:
109             printf("第%d天", 31 + 28 + 31 + 30 + 31 + 30 + 31 + 30 + 31 + 30 + day);
110             break;
111         case 12:
112             printf("第%d天", 31 + 28 + 31 + 30 + 31 + 30 + 31 + 30 + 31 + 30 + 31 + day);
113             break;
114         default:
115             printf("错误—输入错误\n");
116 
117         }
118     }
119 
120 }
121 
122 //输入两个运算数(x 和 y)和 一个运算符(op),并计算 x op y 的值.(+ - * / % )
123 void jisuan(int x,int y,char op) {
124     switch (op) {
125     case '+':
126         printf("%d",x+y);
127         break;
128     case '-':
129         printf("%d", x - y);
130         break;
131     case '*':
132         printf("%d", x * y);
133         break;
134     case '/':
135         printf("%d", x / y);
136         break;
137     case '%':
138         printf("%d", x % y);
139         break;
140     default:
141         printf("输入错误。");
142     }
143 }
144 //将第二题替换成 if else 表达式。
145 void jisuan1(int x, int y, char op) {
146     if (op == '+') {
147         printf("%d", x + y);
148     }
149     else if (op == '-') {
150         printf("%d", x - y);
151     }
152     else if (op == '*') {
153         printf("%d", x * y);
154     }
155     else if (op == '/') {
156         printf("%d", x / y);
157     }
158     else if (op == '%') {
159         printf("%d", x % y);
160     }
161     else {
162         printf("输入错误。\n");
163     }
164         
165 }
166 //输入一个月份,输出该月对应的季节。
167 void jijie(int month) {
168     switch (month) {
169     case 3:
170     case 4:
171     case 5:
172         printf("春季\n");
173         break;
174     case 6:
175     case 7:
176     case 8:
177         printf("夏季\n");
178         break;
179     case 9:
180     case 10:
181     case 11:
182         printf("秋季\n");
183         break;
184     case 1:
185     case 2:
186     case 12:
187         printf("冬季\n");
188         break;
189     default:
190         printf("错误输入");
191     }
192 }
193 //编程实现当 x < 0 的时候 y = -1; x == 0 的时候 y = 0; x > 0 的时候,y = 1;
194 void fuzhi(int x) {
195     int y;
196     if (x < 0)
197         y = -1;
198     if (x == 0)
199         y = 0;
200     if (x > 0)
201         y = 1;
202 
203     switch(x){
204     case 0:
205         y = 0;
206         break;
207     default:
208         x > 0 ? 1 : -1;
209         break;
210     }
211 }
212 
213 /*
214 运输公司对所运货物实行分段计费。设运输里程为 s,计费情况如下:设每公里每吨基本
215 运费为 p,货物重量为 w,折扣为 d,总运费 f 的计算公式为:f=p*w*s*(1-d)。设计程序,
216 当输入 p、w 和 s 后,计算运费 f。
217 s<250 不打折扣
218 250<=s<500 2%折扣
219 500<=s<1000 5%折扣
220 1000<=s<2000 8%折扣
221 2000<=s<3000 10%折扣
222 3000<=s 15%折扣
223 网上复制,没有测试 不懂。
224 
225 void yunshu(int p,int w,int s) {
226     int c,d;
227     c = s / 500;
228     switch(c){
229     case 0:
230         d = 0;
231         f += p*w*s*(1 - d);
232         break;
233     case 1:
234     case 2:
235     case 3:
236     case 4:
237     case 5: 
238     case 6:
239         d = 0.02; 
240         f += p*w*(s - 250)*(1 - d);
241         s = 250;
242         break;
243     case 7: 
244     case 8: 
245     case 9: 
246     case 10: 
247     case 11:
248         d = 0.1; 
249         f += p*w*(s - 1500)*(1 - d); 
250         s = 1500;
251         break;
252     default:
253         d = 0.15; 
254         f += p*w*(s - 3000)*(1 - d); 
255         s = 3000;
256     }
257 }
258 */
259 /*
260 定期存款利息计算器
261 输入存款金额并选择存款种类,计算出利息和本息合计。
262 提示:利息=金额×年利率×存期(单位:年,3 个月为 0.25 年,6 个月为 0.5 年)。
263 例如:1000 元存 6 个月,利息=1000×0.033×0.5=16.5 元
264 年利率:3 个月 3.10%,6 个月 3.30%,一年 3.50%,二年 4.40%,三年 5.00%,五年 5.50%。
265 */
266 void lixi(float money,int cunqi) {
267     float lixi;
268     //lixi = jine*lilv*cunqi;
269     switch (cunqi)
270     {
271     case 3:
272         lixi = money*0.031*0.25;
273         printf("%.2f", lixi);
274         break;
275     case 6:
276         lixi = money*0.033*0.5;
277         printf("%.2f", lixi);
278         break;
279     case 12:
280         lixi = money*0.035*1;
281         printf("%.2f", lixi);
282         break;
283     case 24:
284         lixi = money*0.044*2;
285         printf("%.2f", lixi);
286         break;
287     case 36:
288         lixi = money*0.05*3;
289         printf("%.2f", lixi);
290         break;
291     case 50:
292         lixi = money*0.055*5;
293         printf("%.2f", lixi);
294         break;
295     default:
296         printf("当前没有对应套餐\n");
297     }
298 }
299 int main() {
300     lixi(1000,6);
301     jijie(6);
302     jisuan(2,2,'%');
303     days(2020, 12, 7);
304     system("pause");
305     return 0;
306 }
View Code

 

posted @ 2020-01-07 22:39  泡个馒头  阅读(223)  评论(0编辑  收藏  举报