C语言实战开发(1)——工资结算与年龄的英文转换

2019-11-16  本文已影响0人  让时间走12138

一、工资结算

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!!!

上一篇下一篇

猜你喜欢

热点阅读