C語(yǔ)言實(shí)戰(zhàn)開(kāi)發(fā) 2019-11-15
用所學(xué)知識(shí)編寫簡(jiǎn)單的兩個(gè)程序
- 程序一:給定工資,計(jì)算稅后工資并輸出
- 程序二:以阿拉伯?dāng)?shù)字給定年齡,輸出數(shù)字年齡的英文翻譯
一、稅后工資實(shí)戰(zhàn)
/*
輸入工資 計(jì)算稅后工資
<5000
5k-8k 10%
8k-10k 15%
>10k 20%
例如 10000:salary=10000-(10000-8000)*0.15-(8000-5000)*0.1=9400
*/
#include <stdio.h>
#include <iostream>
using namespace std;
int main()
{
float x;
float salary;
float tax;
printf("請(qǐng)輸入你的工資:");
scanf("%f",&x);
if(x>=10000)
tax=(x-10000)*0.2+300+300;
else if(x>=8000&&x<10000)
tax=(x-8000)*0.15+300;
else if(x>=5000&&x<8000)
tax=(x-5000)*0.1;
else tax=0;
salary=x-tax;
printf("你的稅后工資是:%f\n",salary);
return 0;
}
- 次項(xiàng)目較為簡(jiǎn)單,多次利用if語(yǔ)句即可完成;
- 算法較多,可找到合適的算法對(duì)代碼進(jìn)行優(yōu)化,以上為優(yōu)化后源代碼。
二、輸出年齡
#include <stdio.h>
int main()
{
//x是個(gè)位 y是十位 z是11-19
char* gewei[] = {"","one","two","three","four","five","six","seven","eight","nine"};
char* shiwei[] = {"twenty","thiry","forty","fifty","sixty","seventy","eighty","ninety"};
char* temp[] = {"ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eignteen","nineteen"};
int age;
printf("請(qǐng)輸入你的年齡:");
scanf("%d",&age);
char *english;
if(age<10&&age>0)
{
english = gewei[age];
}
else if(age<=19&&age>=10)
{
int index = age%10;
english = temp[index];
}
else if(age>=20&&age<=99) //將個(gè)位十位以此導(dǎo)出 g個(gè)位 s十位
{
int g = age%10;
int s = age/10;
char* sString = shiwei[s-2];
char* gString = gewei[g];
printf("age is %s-%s\n",sString,gString);
return 0; //提前結(jié)束
}
printf("age is %s\n",english);
return 0;
}
本次實(shí)戰(zhàn)要點(diǎn):
- 利用數(shù)組,將阿拉伯?dāng)?shù)字與英文聯(lián)系起來(lái),用充分理解數(shù)字的含義并運(yùn)用到實(shí)際問(wèn)題中去
- 利用if判斷語(yǔ)句,對(duì)不同類型年齡進(jìn)行判斷
- 清楚了解各類數(shù)據(jù)類型的輸入輸出格式
- 涉及指針
存在的問(wèn)題:
- 當(dāng)年齡輸出20,30等整十時(shí) twenty- 這個(gè)“-”仍存在??山o20,30等整十?dāng)?shù)字單獨(dú)判斷
反思
- 對(duì)數(shù)組理解不夠到位,正確輸出數(shù)值需多次判斷;
- 語(yǔ)法錯(cuò)誤仍存在,需要多多聯(lián)系,增加代碼量;
- 多多思考,培養(yǎng)編程思維;