C语言经典100题之1-20

题目1:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

#include<stdio.h>
int main()
{
   
	int ge = 0, shi = 0, bai = 0, i = 0;
	int count = 0;
	int a[100] = {
   0};
	for(ge = 1; ge < 5; ge++)
	{
   
		for(shi = 1; shi < 5; shi++)
		{
   
			if(shi == ge)  //排除个位和十位相等
			{
   
				continue;
			}
			for(bai = 1; bai < 5; bai++)
			{
   
				if(bai == shi || bai == ge)  //排除个位与十位相等或百位与个位相等
				{
   
					continue;
				}
				a[count] = bai * 100 + shi * 10 + ge;
				count++;
			}
		}
	}
	printf("1,2,3,4可组成互不相同且无重复数字的三位数共%d个\n", count);
	printf("分别是");
	for(i = 0; i < count; i++)
	{
   
		printf("%d ", a[i]);
	}
	printf("\n");
	return 0;
}

运行结果
在这里插入图片描述
题目2:企业发放的奖金根据利润提成。
利润(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<stdio.h>
int main()
{
   
	double profit = 0, bonus = 0, bonus1 = 0, bonus2 = 0, bonus3 = 0, bonus4 = 0, bonus5 = 0;
	bonus1 = 100000 * 0.1;
	bonus2 = (200000 - 100000) * 0.075 + bonus1;
	bonus3 = (400000 - 200000) * 0.05 + bonus2;
	bonus4 = (600000 - 400000) * 0.03 + bonus3;
	bonus5 = (1000000 - 600000) * 0.015 + bonus4;
	printf("请输入当月利润:");
	scanf("%lf", &profit);
	if(profit < 100000)
	{
   
		bonus = profit * 0.1;
	}
	else if(profit < 200000)
	{
   
		bonus = (profit - 100000) * 0.075 + bonus1;
	}
	else if(profit < 400000)
	{
   
		bonus = (profit - 200000) * 0.05 + bonus2;
	}
	else if(profit < 600000)
	{
   
		bonus = (profit - 400000) * 0.03 + bonus3;
	}
	else if(profit < 1000000)
	{
   
		bonus = (profit - 600000) * 0.015 + bonus4;
	}
	else
	{
   
		bonus = (profit - 1000000) * 0.01 + bonus5;
	}
	printf("应发放奖金总数%.2f\n", bonus);
	return 0;
}

运行结果
在这里插入图片描述
题目3:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?

#include<stdio.h>
#include<math.h>
int GetPs(int a)
{
   
	if(sqrt(a) == ((int)sqrt(a)))
	{
   
		return 1;
	}
	return 0;
}

//根据输入范围查找符合的整数
int FindNumber(int len)
{
   
	int i = 0;
	for(i = 0; i < len; i++)
	{
   
		//符合一个整数加100再加168后都是完全平方数
		if((GetPs(i + 100))&&(GetPs(i + 268)))
		return i;
	}
}

int main()
{
   
	printf("这个数是%d\n", FindNumber(10000));
	return 0;
}

运行结果
在这里插入图片描述
题目4:输入某年某月某日,判断这一天是这一年的第几天?

#include<stdio.h>

//根据年月日获取天数
int GetNum(int year, int mouth, int day)
{
   
	int a = 0;
	switch(mouth)
	{
   
	case 1:
		a = day;
		break;
	case 2:
		a = day + 31;
		break;
	case 3:
		a = day + 31 + 28;
		break;
	case 4:
		a = day + 31 * 2 + 28;
		break;
	case 5:
		a = day + 31 * 2 + 28 + 30;
		break;
	case 6:
		a = day + 31 * 3 + 28 + 30;
		break;
	case 7:
		a = day + 
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值