上次的课后练习

第1题输出:

第二题输出:1

第三题:

#include<iostream>
#include<cmath>
using namespace std;
int main(){
double n,x,y;
cin>>n>>x>>y;
cout << n - ceil ( y/ x);
return 0;
}

提示:y是总时间,除以速度就是吃掉了多少个,向上取整,再用n去减,就是一共剩下多少个。

一,if语句

【例题】计算出租车价格。小于3分里收11元,大于3公里先收11元,3公里以外部分再每公里2.1元。

这里有两种情况,分为小于3公里和大于3公里两种,我们需要使用到if语句。
 
if语句的格式如下:
if(条件表达式){
  语句;
}
注:为了看上去清晰,表示中间的语句在if语句里面,我们一般在if中的语句前面加上2个或4个空格(根据喜好)。
当条件表达式成立时,执行括号内的语句。
其中,条件表达式可以用这几种运算符连接:>(大于),<(小于),>=(大于等于),<=(小于等于),!=(不等于),==(等于)
避免和赋值运算符混淆,“等于”写作“==”。
因此,我们可以这样写程序。
#include<stdio.h>
int main(){
int n;
cin>>n;
if(n<=3){
cout<<11;
}
if(n>3){
cout<<11+(n-3)*2.1;
}
return 0;
}

除此之外,C++还提供了if...else语句。

if(条件表达式){
 语句A;
}
else{
 语句B;
}
当表达式成立时,执行语句A,否则执行语句B。
这里我们只有两种情况,也可以使用else来写。
#include<stdio.h>
int main(){
int n;
cin>>n;
if(n<=3){
cout<<11;
}
else{
cout<<11+(n-3)*2.1;
}
return 0;
}

【例题】输入学生的分数,计算学生的等第。

A:90-100分
B:75-89分
C:60-74分
D:0-59分
 
有多种情况并列时,我们可以使用else if。
if(...){}
else if(...){}
else if(...){}
 
特别的,如果判断A和B两个条件都成立,在if语句中可以写作:
if(A&&B)
如果判断A和B两个条件至少一个成立,在if语句中可以写作:
if(A||B)
 
#include<stdio.h>
int main(){
int n;
cin>>n;
if(n>=90 && n<=100){
cout<<"A";
}
else if(n>=75 && n<=89){
cout<<"B";
}
else if(n>=60 && n<=74){
cout<<"C";
}
else cout<<"D";
return 0;
}

有人会问,为什么不写成90<=n<=100呢?C++不支持这样写,它会理解成(90<=n)<=100,如果90<=n成立,成立的语句在计算的时候看做是1,于是就理解为了1<=100,并不是我们想要的,所以不可以这样写。

【例题】(NOIP 2015 普及组初赛真题)阅读程序写结果。

#include <iostream>
using namespace std;
int main() {
int a, b, c; a = 1;
b = 2;
c = 3;
if(a > b)
if(a > c)
cout << a << ' ';
else
cout << b << ' ';
cout << c << endl;
return 0;
}

首先,我们先看第7行的if(a>b),由于1<2,不成立,其中所有if中的语句(即缩进部分)全部被跳过,一直到倒数第三行,所以输出c,正确答案是:3。

二,课后作业

1,阅读程序写结果。

#include<iostream>
using namespace std;
int main(){
char c;
cin>>c;
cout<<c<<"is ";
if(c>='0'&&c<='9')cout<<"a number";
else cout<<"not a number";
return 0;
}

输入:4

2,编写程序,实现简易计算器。要求:

输入两个数和一个运算符,中间用空格分割,输出按照要求的计算结果。

样例输入:10 + 2

样例输出:12

【C++基础教程】第四课的更多相关文章

  1. NeHe OpenGL教程 第四课:旋转

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

  2. Android OpenGL教程-第四课【转】

    第四课 旋转: 在这一课里,我将教会你如何旋转三角形和四边形.左图中的三角形沿Y轴旋转,四边形沿着X轴旋转. 我们增加两个变量来控制这两个对象的旋转.这两个变量加在程序的开始处其他变量的后面.它们是浮 ...

  3. 《jQuery基础教程(第四版)》学习笔记

    本书代码参考:Learning jQuery Code Listing Browser 原书: jQuery基础教程 目录: 第2章 选择元素 1. 使用$()函数 2. 选择符 3. DOM遍历方法 ...

  4. Linux零基础入门第四课

    根据直播讲义整理的内容,从第四课开始.前三课的内容若后面有精力会一并整理进来. 文件的基本操作(上) 创建.删除.复制.移动和重命名 touch命令创建文件 语法 >$ touch file0 ...

  5. GeoServer基础教程(四):空间数据互操作的接口规范WMS、WFS和WCS

    转载:https://ethanblog.com/tech/all-about-wms-wfs-and-wcs.html 前面几节介绍了GeoServer基础教程的一些基本操作,相信大家对GeoSer ...

  6. ActiveMQ基础教程(四):.net core集成使用ActiveMQ消息队列

    接上一篇:ActiveMQ基础教程(三):C#连接使用ActiveMQ消息队列 这里继续说下.net core集成使用ActiveMQ.因为代码比较多,所以放到gitee上:https://gitee ...

  7. Kafka基础教程(四):.net core集成使用Kafka消息队列

    .net core使用Kafka可以像上一篇介绍的封装那样使用(Kafka基础教程(三):C#使用Kafka消息队列),但是我还是觉得再做一层封装比较好,同时还能使用它做一个日志收集的功能. 因为代码 ...

  8. 【C++基础教程】第一课

    一,C++基础 1.1.什么是C++ C++是一种面向对象的编程语言,如今被广泛应用于各种行业. 1.2.C++的语法特点 一般C++的程序长成这个样子: #include<...> // ...

  9. Tomcat基础教程(四)

    一.将Web应用部署到Tomcat中 为什么要部署?将Web应用部署到Tomcat中,那么Tomcat就能找到相应的Web应用,当Tomcat启动时就会加载和初始化Web应用,而在Tomcat启动后, ...

  10. jQuery基础教程第四版练习答案

    第二章 1. $('#selected-plays>li>ul>li').nextAll().addBack().addClass('special'); 2. $('table') ...

随机推荐

  1. [C++]-vector 向量

    什么是向量容器 向量容器是一种支持高效的随机访问和高效的尾部插入新元素的容器. 向量容器一般实现为一个动态分配的数组,向量中的元素连续的存放在这个数组中,因此对向量容器进行随机访问具有和动态访问动态数 ...

  2. mysql《一》

    一.启动和停止服务器 通过管理员权限打开cmd命令指示符 通过 net stop mysql(自己的服务器名字)  停止服务器 通过 net start mysql(自己的服务器名字)  启动服务器 ...

  3. gRPC学习之五:gRPC-Gateway实战

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  4. 安鸾CTF-cookies注入

    什么是cookie注入? cookie注入的原理是:修改cookie的值进行注入 cookie注入其原理也和平时的注入一样,只不过注入参数换成了cookie 例如:PHP $_REQUEST 变量变量 ...

  5. Asp.Net Core Razor页面中使用echarts展示图形

    Asp.Net Core Razor页面中使用echarts展示图形 要在Razor页面中使用echarts显示图形,主要问题点在于如何将数据传递给js文件. 1,下载安装echarts库文件 首先引 ...

  6. Lab: 2FA bypass using a brute-force attack:暴力破解双重验证靶场复盘(困难级别)

    靶场内容: This lab's two-factor authentication is vulnerable to brute-forcing. You have already obtained ...

  7. 002 TCP/IP模型

    一.TCP/IP 的含义 一般来说,TCP/IP是利用IP进行通信时所必须用到的协议群的统称. 具体点,IP或ICMP.TCP或UDP.TELENT或FTP.以及HTTP等都属于TCP/IP协议,而T ...

  8. 【现学现卖】th:href标签动态路径设置,thymeleaf获取session中的属性值

    update:2020-02-28:按道理来说这个功能在前后端分离的时候应该不怎么用的上,基本到现在我还是没遇到过有这样的需求,不过也是一种方法就是.th:href="@{/{role}/l ...

  9. 【HMC Core 6.0全球上线】图形计算服务新插件,助力高画质3D手游创新

    HMS Core 6.0已于7月15日全球上线,本次新版本向广大开发者开放了众多全新能力与技术.其中华为图形计算服务(CG Kit)开放了体积雾插件和流体插件,为3D手游画面的提升提供了坚实的技术基础 ...

  10. win10 安装mysql5.7 【自定义安装路径】