【暑假自学C语言】 --8 练习题详解(分段函数)
目录
一、利润计算
解题思路:
方法一代码如下:
代码理解:
方法二代码如下:
代码理解:
两种解法比较:
优点:
缺点:
二、成绩评定
解题思路:
方法一代码如下:
代码理解:
方法二代码如下:
代码理解:
一、利润计算
解题思路:
- 用判断语句 if () else if () else
- 用switch函数 switch(){case 1: //命令 break; default: //命令}
方法一代码如下:
#include <stdio.h>
int main()
{double a,p;scanf("%lf",&a);if (a>=0 && a<=100000)p=a*0.1;else if(a>100000 && a<=200000)p=100000*0.1+(a-100000)*0.075; else if(a>200000 && a<=400000)p=100000*0.175+(a-200000)*0.05;else if(a>400000 && a<=600000)p=100000*0.175+200000*0.05+(a-400000)*0.03;else if(a>600000 && a<=1000000)p=100000*0.175+200000*0.05+200000*0.03+(a-600000)*0.015;elsep=100000*0.175+200000*0.05+200000*0.03+400000*0.015+(a-1000000)*0.01;printf("%.0lf\n",p);return 0;
}
代码理解:
首先可以根据题意判断出像分段函数一样来进行分类,这时就可以运用“if 、else if、else”结构,这样就可以将情况分开计算,剩下就是简单的输入输出函数,将所需对应的值进行打印出来。
方法二代码如下:
#include<stdio.h>
int main()
{int a,p;scanf("%d",&a);switch(a/100000){case 0:p=a*0.1;break;case 1:p=100000*0.1+(a-100000)*0.075;break;case 2:case 3:p=100000*0.1+100000*0.075+(a-200000)*0.05;break;case 4:case 5:p=100000*0.1+100000*0.075+200000*0.05+(a-400000)*0.03;break;case 6:case 7:case 8:case 9:p=100000*0.1+100000*0.075+200000*0.05+200000*0.03+(a-600000)*0.015;default:p=100000*0.1+100000*0.075+200000*0.05+200000*0.03+400000*0.015+(a-1000000)*0.01;}printf("%d",p);return 0;
}
代码理解:
运用了switch分支语句,这样我们应该先对输入值进行判断一下属于“case 几”然后直接输入很短的数字即可,可以节省时间以及便于理解。我们可以对于非常大的基数来进行预处理一下,就比如我都是先除十万然后再进行属于哪种情况,最后也是一样的输入输出函数,打印所需值。
两种解法比较:
第一种方法
优点:更加通俗易懂,可以直接进行分类,再进行表达式的运行
缺点:数字较大,容易造成用户输入错误,编写代码时也更加麻烦。
第二种方法
优点:
更加快捷简便,对于输入数值方面都更加的方便
缺点:
运用不好容易出错,有可能会导致整个程序都错误,应该熟练运用break等
二、成绩评定
解题思路:
仍是类似分段函数样式,只不过是符合某个条件就直接进行下面字母的打印,所以只需要写出“if 、else if、else”结构和printf打印函数即可
方法一代码如下:
#include<stdio.h>int main()
{int a; scanf_s("%d", &a); if (a >= 90) if (a <= 100) printf("A\n");if (a >= 80)if (a <= 89)printf("B\n");if (a >= 70)if (a <= 79) printf("C\n"); if (a >= 60) if (a <= 69)printf("D\n");if (a < 60) printf("E\n");return 0;
}
代码理解:
对于输入不同数值,让系统通过if语句来判断执行哪个语句,两个if语句是我第一次做这个程序时候用的,可以使用&&来省略一下,使代码变得更加简化,更加直观。
方法二代码如下:
#include<stdio.h>
int main()
{int a;scanf("%d",&a); switch(a/10){case 10:case 9:putchar('A');break;case 8:putchar('B');break;case 7:putchar('C');break;case 6:putchar('D');break;default:putchar('E'); }
}
代码理解:
和上一道题原理基本相似,通过满分百分的分数除以十通过判断结果所在范围,从而确定分数所在范围,进而打印相应的等级。
【暑假自学C语言】 --8 练习题详解(分段函数)相关推荐
- python函数练习题详解_Python练习题详解之函数3(小白友好)
Python练习题详解之函数3(小白友好) 你好!欢迎来到Python练习题详解系列.为了让小白(也就是我本人)更好的理解代码,打好编程基础,我决定仔细地解说一些练习题.欢迎阅读!奥利给! 题目1 编 ...
- C语言-基础练习题详解
目录 前言 一.模拟用户登录情景 1.要求 2.代码 二.求两数的最大公约数 1.方法简介 2.代码 三.打印闰年 1.要求与概念 2.代码 四.打印100-200之间的素数 1.方法与概念 2.代码 ...
- (转)C语言位运算详解
地址:http://www.cnblogs.com/911/archive/2008/05/20/1203477.html C语言位运算详解 作者:911 说明:本文参考了http://www2.ts ...
- R语言基础知识详解及概括
R语言基础知识详解及概括 目录 R语言基础知识详解及概括 R数据可视化示例 R语言进行数据创建
- python语言的格式框架_django框架模板语言使用方法详解
本文实例讲述了django框架模板语言使用方法.分享给大家供大家参考,具体如下: 模板功能 作用:生成html界面内容,模版致力于界面如何显示,而不是程序逻辑.模板不仅仅是一个html文件,还包括了页 ...
- C语言再学习 -- 详解C++/C 面试题 2
(经典)C语言测试:想成为嵌入式程序员应知道的0x10个基本问题. 参看:嵌入式程序员面试问题集锦 1.用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题) #define ...
- python自动解析json_Python语言解析JSON详解
本文主要向大家介绍了Python语言解析JSON详解,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助. JSON 函数使用 JSON 函数需要导入 json 库:import jso ...
- c语言4 答案详解,2019考研数据结构C语言版详解答案(4)
<数据结构(C语言版)>复习重点在二.三.六.七.九.十章,考试内容两大类:概念,算法,自从计算机专业课统考以后,专业课考试题型分为2类,一类选择题,一类综合应用题.本次新东方在线整理了数 ...
- 计算机科学类专升本复习之“C语言结构体”详解(初稿)
C语言结构体详解,C语言struct用法详解 前面所学到的"数组":它是一组具有"相同类型"的数据的集合. 但是在实际的编程中,我们往往还需要 一组" ...
最新文章
- 在SQL Server 20005中修改存储过程
- 改变进程的优先级,nice,getpriority,setpriority
- LeetCode_111.二叉树的最小深度
- irms模拟数据生成及数据分析
- 使用electron脚手架electron-vue
- 了解Entity Framework中事务处理
- python的变量对大小写并不敏感_Python编程基础02:Python基本语法
- PyCharm 中选中一个变量/函数后,所有用到这个变量/函数的地方高亮显示,改配色方案
- 高性能服务器中的C10K问题
- Ubuntu Server Download
- matlab中fft定点运算,可用于嵌入式计算的定点FFT算法 (转载)
- 2021年第十二届蓝桥杯javaB组真题及部分答案
- 声纹识别之Alize入门教程(四):matlab代码读取Spro工具提取的mfcc特征
- iOS之加载Gif图片
- 毕业论文写作与学术规范
- 网站死链接检测以及死链接的处理方式
- linux下RTNETLINK answers: File exists的解决方案 慎重
- Xilinx GTX/GTH时钟篇(7系列)
- 3步实现 华为云服务器IPV4-> IPV6改造方法
- There is a problem with this Windows Installer package 卸载软件提示