首页 > 其他分享 >C语言典型例题46

C语言典型例题46

时间:2024-08-20 21:54:34浏览次数:11  
标签:语句 46 float C语言 switch 000 && 例题 利润

《C程序设计教程(第四版)——谭浩强》

题目:


习题3.6 企业发放的奖金根据利润提成。利润I低于或等于100 000元的,奖金可提成10%;
                                      利润高于100 000元,低于200000元(100000<I≤200000)时,低于100000元的部分按10%提成,高于100000元的部分,可提成7.5%;
                                      利润高于200 000元,低于400000元(200000<I≤400000)时,低于200000元的部分仍按上述办法提成(下同),高于200000元的部分,可提成5%;
                                      利润高于400 000元,低于600000元(400000<I≤600000)时,高于400000元的部分,可提成3%;
                                      利润高于600 000元,低于1000000元(600000<I≤1000000)时,高于600000元的部分,可提成1.5%;
                                      利润高于1 000 000元,超过1 000 000元的部分按1%提成。
(1)用if语句编程序;
(2)用switch语句编程序。


代码:

(1)使用if语句

#include <stdio.h>
int main()
{
	float fee=0;//奖金 
	float I=0;//利润
	
	printf("请输入你所为公司创造的利润:\n");
	scanf("%f",&I);
	
	if(I<100000)
	{
		fee=I*0.1;
	}
	else if(I>100000 &&I<=200000)
	{
		fee=100000*0.1+((I-100000)*0.075);
	}
	else if(I>200000 &&I<=400000)
	{
		fee=100000*0.1+((200000-100000)*0.075)+((I-200000)*0.05);
	}
	else if(I>400000 &&I<=600000)
	{
		fee=100000*0.1+((200000-100000)*0.075)+((400000-200000)*0.05)+((I-400000)*0.03);
	}
	else if(I>600000 &&I<=1000000)
	{
		fee=100000*0.1+((200000-100000)*0.075)+((400000-200000)*0.05)+((600000-400000)*0.03)+((I-600000)*0.015);
	}
	else
	{
		fee=100000*0.1+((200000-100000)*0.075)+((400000-200000)*0.05)+((600000-400000)*0.03)+((1000000-600000)*0.015)+((I-1000000)*0.01);
	}
	
	printf("你所应该得到的奖金为%.2f",fee);
	
	return 0;
}

(2)使用switch语句

//(2)用switch语句编程序。
#include <stdio.h>
int main()
{
	float fee=0;//奖金 
	float I=0;//利润
	float ticheng=0;//提成
	int swit=0;//switch语句的判断条件
	
	printf("请输入你所为公司创造的利润:\n");
	scanf("%f",&I);
	
	if(I<100000)
	{
		swit=1;
	}
	else if(I>100000 &&I<=200000)
	{
		swit=2;
	}
	else if(I>200000 &&I<=400000)
	{
		swit=3;
	}
	else if(I>400000 &&I<=600000)
	{
		swit=4;
	}
	else if(I>600000 &&I<=1000000)
	{
		swit=5;
	}
	else
	{
		swit=6;
	}
	
	switch(swit)
	{
		case 1:
			fee=I*0.1;
			break;
		case 2:
			fee=100000*0.1+((I-100000)*0.075);
			break;
		case 3:
			fee=100000*0.1+((200000-100000)*0.075)+((I-200000)*0.05);
			break;
		case 4:
			fee=100000*0.1+((200000-100000)*0.075)+((400000-200000)*0.05)+((I-400000)*0.03);
			break;
		case 5:
			fee=100000*0.1+((200000-100000)*0.075)+((400000-200000)*0.05)+((600000-400000)*0.03)+((I-600000)*0.015);
			break;
		case 6:
			fee=100000*0.1+((200000-100000)*0.075)+((400000-200000)*0.05)+((600000-400000)*0.03)+((1000000-600000)*0.015)+((I-1000000)*0.01);
			break;
		default:
			printf("!!!您的输入有误!!!");
	}
	
	printf("你所应该得到的奖金为%.2f",fee);
	
	return 0;
}

(3)汇总

//《C程序设计教程(第四版)——谭浩强》
//习题3.6 企业发放的奖金根据利润提成。利润I低于或等于100 000元的,奖金可提成10%;
//									  利润高于100 000元,低于200000元(100000<I≤200000)时,低于100000元的部分按10%提成,高于100000元的部分,可提成7.5%;
//									  利润高于200 000元,低于400000元(200000<I≤400000)时,低于200000元的部分仍按上述办法提成(下同),高于200000元的部分,可提成5%;
//									  利润高于400 000元,低于600000元(400000<I≤600000)时,高于400000元的部分,可提成3%;
//									  利润高于600 000元,低于1000000元(600000<I≤1000000)时,高于600000元的部分,可提成1.5%;
//									  利润高于1 000 000元,超过1 000 000元的部分按1%提成。
//(1)用if语句编程序;
//(2)用switch语句编程序。

//(1)用if语句编程序;
#include <stdio.h>
int main()
{
	float fee=0;//奖金 
	float I=0;//利润
	
	printf("请输入你所为公司创造的利润:\n");
	scanf("%f",&I);
	
	if(I<100000)
	{
		fee=I*0.1;
	}
	else if(I>100000 &&I<=200000)
	{
		fee=100000*0.1+((I-100000)*0.075);
	}
	else if(I>200000 &&I<=400000)
	{
		fee=100000*0.1+((200000-100000)*0.075)+((I-200000)*0.05);
	}
	else if(I>400000 &&I<=600000)
	{
		fee=100000*0.1+((200000-100000)*0.075)+((400000-200000)*0.05)+((I-400000)*0.03);
	}
	else if(I>600000 &&I<=1000000)
	{
		fee=100000*0.1+((200000-100000)*0.075)+((400000-200000)*0.05)+((600000-400000)*0.03)+((I-600000)*0.015);
	}
	else
	{
		fee=100000*0.1+((200000-100000)*0.075)+((400000-200000)*0.05)+((600000-400000)*0.03)+((1000000-600000)*0.015)+((I-1000000)*0.01);
	}
	
	printf("你所应该得到的奖金为%.2f",fee);
	
	return 0;
}

//(2)用switch语句编程序。
//#include <stdio.h>
//int main()
//{
//	float fee=0;//奖金 
//	float I=0;//利润
//	float ticheng=0;//提成
//	int swit=0;//switch语句的判断条件
//	
//	printf("请输入你所为公司创造的利润:\n");
//	scanf("%f",&I);
//	
//	if(I<100000)
//	{
//		swit=1;
//	}
//	else if(I>100000 &&I<=200000)
//	{
//		swit=2;
//	}
//	else if(I>200000 &&I<=400000)
//	{
//		swit=3;
//	}
//	else if(I>400000 &&I<=600000)
//	{
//		swit=4;
//	}
//	else if(I>600000 &&I<=1000000)
//	{
//		swit=5;
//	}
//	else
//	{
//		swit=6;
//	}
//	
//	switch(swit)
//	{
//		case 1:
//			fee=I*0.10;
//			break;
//		case 2:
//			fee=100000*0.10+((I-100000)*0.075);
//			break;
//		case 3:
//			fee=100000*0.10+((200000-100000)*0.075)+((I-200000)*0.05);
//			break;
//		case 4:
//			fee=100000*0.10+((200000-100000)*0.075)+((400000-200000)*0.05)+((I-400000)*0.03);
//			break;
//		case 5:
//			fee=100000*0.10+((200000-100000)*0.075)+((400000-200000)*0.05)+((600000-400000)*0.03)+((I-600000)*0.015);
//			break;
//		case 6:
//			fee=100000*0.10+((200000-100000)*0.075)+((400000-200000)*0.05)+((600000-400000)*0.03)+((1000000-600000)*0.015)+((I-1000000)*0.01);
//			break;
//		default:
//			printf("!!!您的输入有误!!!");
//	}
//	
//	printf("你所应该得到的奖金为%.2f",fee);
//	
//	return 0;
//}

运行结果:

(1)编写if语句的方法的运行结果:

(2)编写switch语句的方法的运行结果:

运行结果的验证:(每一中方法只进行一次)

(1)编写if语句的方法的运行结果验证:

(2)编写switch语句的方法的运行结果验证:

代码编写过程中遇到的问题:

(1)奖金的书写

一定要细心,一步一步来,每一个数字都不能放过。

例如:作者就将一步的0少写了一个,导致验证的答案与编译器算出来的答案始终不同。

也不要不会就用chatGDP,因为AI也会犯错,就比如一个简单的计算它都能算错。。。

(2)脑力里要清楚每一步的步骤

(3)如果出现错误要从前到后一步一步来检查代码,这个时候,使用调试或者在代码某些关键部分添加一些代码,会让你更快速的定位到错误(有很多的错误编译器是不会报警告或者错误的)

标签:语句,46,float,C语言,switch,000,&&,例题,利润
From: https://blog.csdn.net/2302_77517102/article/details/141368160

相关文章

  • C语言函数递归
    前言与概述本文章将通过多个代码并赋予图示,详细讲解C语言函数递归的定义和函数递归的运算过程。函数递归定义程序调用自身的编程技巧称为递归。递归作为一种算法在程序设计语言中广泛应用。一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法。它通常把一个大型......
  • C语言:递归
    递归简单来说就是函数自己调用自己。特点:一般代码比较简洁,没有出口。例子1:用一个函数计算阶乘#include<stdio.h>//不用递归intfac(intn){ intval=1; for(inti=1;i<=n;i++) { val*=i; } returnval;}//用递归intfac1(intn){ if(n==1) {......
  • c语言基础------数组指针
    在C语言中,数组指针是一种特殊的指针类型,它指向一个数组。具体来说,数组指针是指向数组首元素的指针,但它与普通指针有所不同,因为它包含了数组的大小信息。下面是关于数组指针的一些基本概念和用法:定义数组指针数组指针可以通过以下方式定义:int(*arrayPtr)[10];//arra......
  • c语言基础--------字符串指针
    在C语言中,字符串指针是一个指向字符类型的指针,通常用于指向字符串的第一个字符。字符串在C语言中通常表示为字符数组,而字符串指针则是用来存储这种字符数组首地址的变量。定义字符串指针字符串指针的定义方式如下:char*stringPtr;这里的char*表示stringPtr是......
  • 数据结构-队列 c语言使用链表和数组分别实现
    队列定义队列(queue)是一种遵循先入后到规则的线性数据结构,将队列头部称为“队首”,尾部称为“队尾”,把元素加入队尾称为“入队”,删除队首元素称为“出队”。队列实现基于链表的实现将链表的头节点和尾结点分别视为“队首”和“队尾”,规定队尾仅可添加节点,队首仅可删除节点。......
  • 打印空心正方形(c语言)
    1.//KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的“空心”正方形图案。//输入描述://多组输入,一个整数(3~20),表示输出的行数,也表示组成正方形边的“*”的数量。//输出描述://针对每行输入,输出用“*”组成的“空心”正方形,每个“*......
  • 【C语言】基础知识详解(二) 字符串
    一、什么是字符串?在C语言中,字符串是一种特殊的字符数组,用于存储一系列字符。字符串的表示:在C语言中,字符串是由字符组成的数组,并以空字符'\0'结束。空字符用于标识字符串的结束。例如,字符串"hello"在内存中实际上是{'h','e','l','l','o','\0'}。字符串声明:可以使......
  • 新手专科准大一学习c语言的第4天之break、continue的学习
    学习brake        在昨天学习的循环里brake的作用个人明白了如何使条件达到一定值后退出提前终止循环不再按照循环表达式里的条件进行循环。        例如#include<stdio.h>intmain(){inti=1;//声明第一个变量intl=1;//声明第二个......
  • C语言:一维、二维数组详解
    目录一、数组的概念二、一维数组创建和初始化2.1数组创建2.2数组的初始化2.3数组的类型三、一维数组的使用3.1数组的下标3.2数组的输入与输出四、⼀维数组在内存中的存储五、sizeof计算数组元素个数六、二维数组6.1二维数组的概念6.2二维数组的创建6.3二......
  • C语言 函数
    数组概念C语言中得函数就是一个完成某项特定的任务的一小段代码。这段代码是有特殊的写法和调试方式的。C语言的程序是由无数个小的函数组成的C语言中我们会用到两种函数:库函数自定义函数库函数1.标准库和头文件C语言中是不会提供任何函数的,C语言的国际标准(ANSIC)规定了......