我是靠谱客的博主 魁梧紫菜,最近开发中收集的这篇文章主要介绍C语言入门——Demo【If 语句,数组,随机数】Demo One——工资Demo Two——你的年龄Demo Three——数组应用,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Sunshine__sunny的快乐码奴生活

Demo One——工资


计算员工到手工资

基础工资税率
50000
5k~8k10%
8k~10k15%
>10k20%
自己的初次尝试
#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——数组应用所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(63)

评论列表共有 0 条评论

立即
投稿
返回
顶部