我是靠谱客的博主 魁梧紫菜,最近开发中收集的这篇文章主要介绍C语言入门——Demo【If 语句,数组,随机数】Demo One——工资Demo Two——你的年龄Demo Three——数组应用,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
Sunshine__sunny的快乐码奴生活
Demo One——工资
计算员工到手工资
基础工资 | 税率 |
---|---|
5000 | 0 |
5k~8k | 10% |
8k~10k | 15% |
>10k | 20% |
自己的初次尝试
#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”,…)
经过修改后的代码
#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 ???
初次尝试
#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;
}
逻辑简单,操作复杂
需要新的知识帮助
此时应用数组来实现
经过修改后的代码
#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个(不同)随机数 | 保存到数组 | 输出 | 显示出重复了的数字和重复次数 |
---|
#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 语句,数组,随机数】Demo One——工资Demo Two——你的年龄Demo Three——数组应用所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复