栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言入门1-10题

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言入门1-10题

一:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
        1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去
      掉不满足条件的排列。

#include 

int main()
{
	int i, j, x,sum=0;
	for(i=1; i<=4; i++)
		for(j=1; j<=4; j++)
			for(x=1; x<=4; x++)
				if(i!=j && i!=x && j!=x){
					sum += 1;
					printf("%d%d%dt",i,j,x);
					if(sum%5==0)
						printf("n");
				}
	printf("一共有%d次",sum);
	
	return 0;				
}

结果:
123     124     132     134     142
143     213     214     231     234
241     243     312     314     321
324     341     342     412     413
421     423     431     432     一共有24次

 二:企业发放的奖金根据利润提成。
        利润(i)低于或等于10万元时,奖金可提10%;
        利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;
        20万到40万之间时,高于20万元的部分,可提成5%;
        40万到60万之间时高于40万元的部分,可提成3%;
        60万到100万之间时,高于60万元的部分,可提成1.5%;
        高于100万元时,超过100万元的部分按1%提成;
        从键盘输入当月利润i,求应发放奖金总数?

#include 

int main()
{
	double bonus1, bonus2, bonus3, bonus4, bonus5, bonus, i;//bonus 奖金
	
	bonus1 = 100000 * 0.1;		//10-20
	bonus2 = bonus1 + 100000 * 0.075;  //20-40
	bonus3 = bonus2 + 200000 * 0.05;  //40-60
	bonus4 = bonus3 + 200000 * 0.03;  //60-100
	bonus5 = bonus4 + 400000 * 0.015;  //100+
	
	printf("企业的利润为:");
	scanf("%lf",&i);
	
	if(i <= 100000)
		bonus = i * 0.1;
	else if (i <= 200000)
		bonus = bonus1 + (i-100000)*0.075;
	else if (i <= 400000)
		bonus = bonus2 + (i-200000)*0.05;
	else if (i <= 600000)
		bonus = bonus3 + (i-400000)*0.03;
	else if (i <= 1000000)
		bonus = bonus4 + (i-600000)*0.015;
	else 
		bonus = bonus5 + (i-1000000)*0.01;
		
	printf("企业发放的奖金为%.2lf元",bonus);
	
	return 0;
}

个人认为优化方案:  

int main(){
	
	int j;
	double bonus, i;
	//利润奖金用数组表示  profit:利润 optimize:优化
	float profitBonus[] = {100000, 200000, 400000, 600000, 1000000};
	//利润用一个新的数组表示
	float profit[] = {0.1, 0.075, 0.05, 0.03, 0.015, 0.01};
	
	printf("企业的利润为:");
	scanf("%lf",&i);
	
	for(j=0; j<=4; j++){
		if(i < 100000){
			bonus = i * 0.1;
			break;
		}else if (i > profitBonus[j]){
			bonus = profitBonus[j]*profit[j] + (i-profitBonus[j])*profit[j+1];
			break;
		}
	}
	
	printf("企业发放的奖金为%.2lf元",bonus);
	
	return 0;
			
}

三:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/951632.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号