新手C语言入门,必定会接触到选择结构,而选择结构,任课老师也必定讲过if和switch两种选择。

  而谭浩强教授所做的课本课后习题中,企业发放奖金根据利润提成也是选择结构中的经典习题,在这里,我为大家带来这两种方法的具体做法,可能会有不足,欢迎大家能够指出来。

      首先是由switch语句进行的编写,因为小编喜欢用switch,所以放在了前面。

int main()                             //头文件需自己补充,我这里只给出源文件的代码
{
	int a,b;
	float  sum;
	printf("请输入当月利润:");       //加入此行便于运行时能够直观体现
	scanf("%d", &a);
	b = a / 100000;
	switch (b)                       //switch语句编写,下方if语句编写
	{  
	case 0:
		printf("奖金总数=%.2f", sum = a * 0.1);
		break;
	case 1:
		printf("奖金总数=%.2f", sum = 10000 + (a - 100000) * 0.075);
		break;
	case 2:
	case 3:
		printf("奖金总数=%.2f", sum = 10000 + 7500 + (a - 200000) * 0.05);
		break;
	case 4:
	case 5:
		printf("奖金总数=%.2f", sum = 10000 + 7500 + 10000 + (a - 400000) * 0.03);
		break;
	case 6:
	case 7:
	case 8:
	case 9:
		printf("奖金总数=%.2f", sum = 10000 + 7500 + 10000 + 6000 + (a - 600000) * 0.015); 
		break;              //以上时前五种大的分类
	default:
		printf("奖金总数=%.2f", sum = 10000 + 7500 + 10000 + 6000 + 6000 + (a - 1000000) * 0.01);                   
		break;             //这是最后的一大分类,需要明确区分
	
	}
	return 0;
}

接下来是if语句的编写,如有错处,欢迎指出,小编定会及时修改。

int main()             //仍旧没有头文件,需自己补充
{
	int a;    
	float b, sum;
	printf("请输入当月利润");
	scanf("%d", &a);
	b = a / 100000;
	if (b >= 0 && b <= 1)             //if语句输出
		printf("奖金总数=%.2f", sum = a * 0.1);
	else if (b > 1 && b <= 2)
		printf("奖金总数=%.2f", sum = 10000 + (a - 100000) * 0.075);
	else if (b > 2 && b <= 4)
		printf("奖金总数=%.2f", sum = 10000 + 7500 + (a - 200000) * 0.05);
	else if (b > 4 && b <= 6)
		printf("奖金总数=%.2f", sum = 10000 + 7500 + 10000 + (a - 400000) * 0.03);
	else if (b > 6 && b <= 10)
		printf("奖金总数=%.2f", sum = 10000 + 7500 + 10000 + 6000 + (a - 600000) * 0.015);
	else               //以上是五种能给出具体范围的,下方最后一个是1000000元以上的
		printf("奖金总数=%.2f", sum = 10000 + 7500 + 10000 + 6000 + 6000 + (a - 1000000) * 0.01);
	return 0;
}

  以上便是此问题中的两种基本解决方法。

  重要的事情说三遍:

如有不足请指出,定及时改正。

如有不足请指出,定及时改正。

如有不足请指出,定及时改正。

更多推荐

C语言企业发放奖金根据利润提成问题解答