上次的课后练习

第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. linux copy_id

    ssh-keygen 产生公钥与私钥对. ssh-copy-id 将本机的公钥复制到远程机器的authorized_keys文件中,ssh-copy-id也能让你有到远程机器的home, ~./ssh ...

  2. python数据统计之禅道bug统计

    背景 通过定期输出 每条产品的 BUG 情况,以此来反馈开发解决问题.测试跟进问题的情况:钉钉群推送提醒开发及时解决 以此我这边开始着手准备编写一个小工具,最终达到目的:自动定期发送统计报告,报告维度 ...

  3. 带你读AI论文丨用于目标检测的高斯检测框与ProbIoU

    摘要:本文解读了<Gaussian Bounding Boxes and Probabilistic Intersection-over-Union for Object Detection&g ...

  4. HCNA Routing&Switching之地址转换技术NAT

    前文我们了解了包过滤工具ACL相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15156308.html:今天我们来聊一聊地址转换技术NAT相关话题: ...

  5. Java Web JSTL实现登陆页面重定向 jstl标签

    <form action="js/loginResult.jsp" class="loginForm" id="loginForm" ...

  6. 真.OI宝典

    记得取模%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ...

  7. 题解 e

    传送门 第一眼看貌似可以树剖,然而那个绝对值不知怎么维护 求最小连通块我只会\(k^2\) 主席树貌似可以用来查询区间内与某个数差的绝对值的最小值? 确实,每次查大于等于该数的最小数和小于等于该数的最 ...

  8. 队列(Queue)\双端队列(Deque)

    队列(Queue)\双端队列(Deque) 队列(Queue) 双端队列(Deque) 算法应用 队列(Queue) 特点: 和栈不同,队列的最大特点是先进先出(FIFO),就好像按顺序排队一样.对于 ...

  9. python创建字典多种方式

    1.创建空字典 >>> dic = {} >>> type(dic) <type 'dict'> 2.直接赋值创建 >>> dic = ...

  10. mzy git学习,禁用Fast forward的普通合并(六)

    git merge --no-ff -m "msg" x-branch:禁用Fast forward的普通合并 通常,合并分支时,如果可能,Git会用Fast forward模式, ...