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 }