c语言基础程序题

从键盘输入一个小于1000的正数,要求输出它的平方根(如果平方根不是整数,则输出它的整数部分)。要求在输入数据后先对其进行检查是否为小于1000的正数,若不是,则要求重新输入。

#include<stdio.h>
#include<math.h>

int main()
{
	int a;
	scanf_s("%d", &a);//vs编译器2019中使用scanf时会遇到scanf返回值被忽略问题
	while(a <= 0 || a >= 1000)
	{
		printf("请重新输入\n");
		scanf_s("%d", &a);
	}
	printf("%d\n", (int)sqrt(a));
	return 0;
}

企业发放的奖金根据利润提成。利润I低于或等于100000元的,奖金可提10%;利润高于100000元,低于或等于200000元(100000<I≤200000)时,低于或等于100000元的部分按10%提成,高于100000元的部分,可提成7.5%;200000<I<400000时,低于或等于200000元的部分仍按上述办法提成(下同)。高于200000元的部分按5%提成;400000<I<600000元时,高于400000元的部分按3%提成;600000<I<1000000时,高于600000元的部分按1.5%提成;I>1000000时,超过1000000元的部分按1%提成。从键盘输入当月利润I,求应发奖金总数
要求:(1)用if语句编程序
(2)用switch语句编程序

(1)if语句

#include<stdio.h>
int main()
{
	double i;
	double s=0.0;
	printf("请输入当月利润:\n");
	scanf_s("%lf", &i);
	if (i <= 100000 && i > 0)
	{
		s = i * 0.1;
	}
	else if ( i <= 200000)
	{
		s = 100000 * 0.1 + (i - 100000) * 0.075;
	}
	else if ( i <= 400000)
	{
		s = 100000 * 0.1 + 100000 * 0.075+(i-200000)*0.05;
	}
	else if ( i <= 600000)
	{
		s = 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05+(i-400000)*0.03;
	}
	else if ( i <= 1000000)
	{
		s = 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + 200000 * 0.03+(i-600000)*0.015;
	}
	else if ( i > 1000000)
	{
		s = 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + 200000 * 0.03 + 400000 * 0.015+(i-1000000)*0.01;
	}
	printf("%.2lf", s);
	return 0;
}

(2)switch语句

#include<stdio.h>
int main()
{
	double i;
	double s=0.0;//计算应发奖金 
	printf("请输入当月利润:");
	scanf_s("%lf", &i);
	int n = (int)i / 100000;//如果不强制转换,则从double到int可能丢失数据
	if(n > 10) n = 10;
	switch (n)
	{
	case 0:
		s = i * 0.1; 
		break;
	case 1:
		s = 100000 * 0.1 + (i - 100000) * 0.075;
		break;
	case 2:
	case 3:
		s = 100000 * 0.1 + 100000 * 0.075 + (i - 200000) * 0.05; 
		break;
	case 4:
	case 5:
		s = 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + (i - 600000) * 0.03;
		break;
	case 6:
	case 7:
	case 8:
	case 9:
		s = 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + 200000 * 0.03 + (i - 600000) * 0.015;
		break;
	case 10:
		s = 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + 200000 * 0.03 + 400000 * 0.015 + (i - 1000000) * 0.01;
	}
	printf("应发奖金数:%.2lf\n", s);//奖金数保留两位数字
	return 0;
}

输出100~200之间的素数

#include<stdio.h>
int main()
{
	int j;
	for(int i=100;i<=200;i++)
	{
		for(j=2;j<i;j++)
		{
			if(i%j == 0)
			{
				break;
			}
		}

		if(i == j)
		{
			printf("%d是素数\n",i);
		}
	}
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值