一、工资结算
1.项目目标
当我们输入工资时,能自动算出税后工资
2.前提条件:
若工资在5000元以下,则不用交税;若5000<工资<8000,则超出5000元部分交税10%; 若8000<工资<10000,则超出8000部分交税15%; 若工资>10000,则超出部分交税20%。
3.使用的技术
- if语句
4.遇到的问题
- 多次编写 printf("税后工资:%d",salary);
- 税后工资的公式冗长复杂,看不明白
5.解决方案
- 引入一个变量pay 表示到手工资
- 在程序的末尾统一只写一个printf("税后工资:%d",pay);
6.程序代码
#include<stdio.h> int main(){ int salary; int pay; printf("请输入工资:"); scanf("%d",&salary); if(salary<5000) pay=salary; else if(salary>5000&&salary<8000) pay=salary-(salary-5000)*0.1; else if (salary>8000&&salary<10000) pay=salary-(salary-8000)*0.15-3000*0.1; else {pay=salary -(salary-10000)*0.2-2000*0.15-300;} printf("到手工资:%d",pay); return o;}
二、年龄的英文转换
1.项目目标
当我们输入一个年龄时,能自动得到该年龄对应的英文
2.使用的技术
- if语句
- 数组的引用
3.遇到的问题
- 没有思路,无从下手
- 在表示一到十,和二十一到二十九时,它们对应的个位数组中的位置不同
- % 与 /的混淆
4.解决方案
- 从简单到复杂循序渐进,勇于尝试不同的方案,比如从我需要的语句或是数组开始
- 保持缜密的思绪,适当调整自己的方案
- %表示取余,/表示取整
5.编写思路
- 先明确需要使用数组
- 把 1-9,10-19,20-99分成三组
- 所以我们要定义三种数组,分别是one-nine,ten-nineteen,twenty-ninety
6.程序代码
#include<stdio.h> int main (){ int age=0; printf("请输入你的年龄:"); scanf("%d",&age); char* gewei[]={"","one","two","three","four","five","six","seven","eight","nine"}; char* temp[]={"eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"}; char* shiwei[]={"twenty","thirty","forty","fifty","sixty","seventy","eighty","ninety"}; if(age<10){ name=gewei[age]; }else if(age>=10&&age<=19){ name=temp[age%10]; }else { int g=age%10; int s=age/10; char* sString=shiwei[s-2]; char* gString=gewei[g] ; printf("your age is %s-%s\n",sString,gString); } printf("your name is %s\n",name); return 0; }
三、感悟
实现程序目标有很多种代码,但我们最好使用最简单最清晰明了的代码。在这次学习中,我感受到了用自己的思维编写代码的力量。以前上实验课,我们总是按照课本上的代码编写,再让它正常运行一遍,但是对于为什么这么写,我总是一窍不通。等自己真正写了一个程序以后,我忽然有点明白以后在工作中我需要做些什么了。我要一条路走到底,努力学好计算机,fighting!!!