我是靠谱客的博主 魁梧紫菜,这篇文章主要介绍C语言入门——Demo【If 语句,数组,随机数】Demo One——工资Demo Two——你的年龄Demo Three——数组应用,现在分享给大家,希望可以做个参考。
Sunshine__sunny的快乐码奴生活
Demo One——工资
计算员工到手工资
基础工资 | 税率 |
---|---|
5000 | 0 |
5k~8k | 10% |
8k~10k | 15% |
>10k | 20% |
自己的初次尝试
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32#include<stdio.h> int main() { printf("-----------------------n"); printf(" Sunshine__sunny n"); printf("-----------------------n"); float money; printf("请输入工资:"); scanf("%d",&money); if (money<5000) { printf("您的到手工资为:%d",money); } else if(money<8000) { money=money-(money-5000)*0.1; printf("您的到手工资为:%d",money); } else if(money<10000) { money=money-(money-8000)*0.15-300; printf("您的到手工资为:%d",money); } else { money=money-(money-10000)*0.2-600; printf("您的到手工资为:%d",money); } return 0; }
计算式过于复杂
整体逻辑冗长
注意细节的处理
例如:float而不是int
print(“…后有%d”,…)
经过修改后的代码
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20#include<stdbool.h> int main() { int salary=0; //记录工资 int tax; //税 printf("请输入工资:"); scanf("%d",&salary); if(salary<=5000){ printf("到手工资:%d",salary); }else if(salary > 5000 && salary < 8000){ tax =(salary-5000)*0.1; }else if(salary > 8000 && salary < 10000){ tax =(salary-8000)*0.15+3000*0.1; }else{ tax =(salary-10000)*0.2+2000*0.12+3000*0.1; } printf("到手工资:%d",salary-tax); return 0; }
相同语句合并
巧用变量简化运算过程
Demo Two——你的年龄
用英文输出你的年龄
Your age is ???
初次尝试
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17#include<stdio.h> int main() { printf("-----------------------n"); printf(" Sunshine__sunny n"); printf("-----------------------n"); int age=0; printf("请输入你的年龄"); scanf("%d",&age); if(age=1){ printf("Your age is one.") }... ... //太麻烦了 return 0; }
逻辑简单,操作复杂
需要新的知识帮助
此时应用数组来实现
经过修改后的代码
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36#include<stdio.h> int main() { int age=0; printf("请输入你的年龄"); scanf("%d",&age); //第一个数组,保存个位数 char* gewei[]={" ","one","two","three","four","five","six","seven","eight","nine"}; //保存10-19 char* temp[]={"ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"} ; //保存整十数 char* shiwei[] = {"twenty","thirty","forty","fifty","sixty","seventy","eighty","ninety"}; char *name; //指针 if (age < 10){ name=gewei[age]; }else if(age >= 10 && age <= 19){ //获取个位数 int index =age % 10; name=temp[index]; }else{ //获取个位数 int g= age % 10; //获取十位数 int s= age / 10; //取出对应的单词 char* sString= shiwei[s-2]; char* gString= gewei[g]; printf("Your age is %s-%sn",sString,gString); return 0; //中途程序未完提前结束 } printf("Your age is %sn",name); return 0; }
整体逻辑为
拆分一个两位数
使个位数和十位数搭配组合
从而减少列举次数
Demo Three——数组应用
产生不同随机数
产生4个(不同)随机数 | 保存到数组 | 输出 | 显示出重复了的数字和重复次数 |
---|
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55#include <stdio.h> #include <stdlib.h> #include <time.h> int main() { int array[4] = {};//初始化 srand(time(NULL)); //生成数组 //产生随机数的同时去比较是否重复 //如果重复就重新再产生一个随机数 //如果不重复就保存 //每次i的值正好可以用来判断已经有几个了 for (int i = 0; i < 4; i++) { int temp = rand() % 4; if (i == 0) {//第一个 直接保存 array[i] = temp; } else { //判断前面是否已经存在了 int j = 0; for(; j <i; j++) { //比较j对应的值和temp是否相同 if(array[j] == temp) { //重复了 printf("重复了:%dn",temp); break; } } //判断是怎么出来的 if (j == i) { //将i前面的比较一遍都没发现重复的 //保存temp值 array[i] = temp; } else { //重复了 //重新回到当前这一次 i--; } } } //输出 for (int i = 0; i< 4; i++){ printf("%d ", array[i]); } return 0; }
最后
以上就是魁梧紫菜最近收集整理的关于C语言入门——Demo【If 语句,数组,随机数】Demo One——工资Demo Two——你的年龄Demo Three——数组应用的全部内容,更多相关C语言入门——Demo【If内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复