上次的课后练习

第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. zookeeper查看启动状态报错:Error contacting service. It is probably not running.

    问题描述 我有三台虚拟机master.slave1.slave2.每台虚拟机启动zkServer.sh时都没有报错,然后紧接着查看zkServer.sh的状态,这时候出现了错误:Error conta ...

  2. Java8新特性(一)之Lambda表达式

    .personSunflowerP { background: rgba(51, 153, 0, 0.66); border-bottom: 1px solid rgba(0, 102, 0, 1); ...

  3. TortoiseSVN日志字体和字号调整

    TortoiseSVN提供的"show log"功能很有用,但默认的显示文件log历史的字体太小看不清,这个字体的设置在[TortoiseSVN ->Settings-> ...

  4. Servlet基本知识

    Servlet基本知识 1.IDEA创建第一个Servlet程序xing 这里说明如何使用 IDEA Ultimate 2020.1.3版本来新建第一个web程序.参考 MoonChasing 1.1 ...

  5. Golang语言系列-18-Gin框架博客项目

    代码托管在码云: https://gitee.com/lichengguo/my-blog-golang

  6. swiper在一个页面多个轮播图

    <script> var swiper = new Swiper('.swiper-container1', { spaceBetween: 30, centeredSlides: tru ...

  7. 踩坑记录--接口调用,传参DataTable报错

    问题描述 服务端提供接口,接口参数包含DataTable类型,客户端调用显示请求报错,Postman调用显示Could not get response 解决 原因 接口实现基于wcf,而wcf参数类 ...

  8. TCP三次握手中SYN,ACK,Seq含义

    TCP(Transmission Control Protocol)传输控制协议 TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接: 位码即tcp标志位,有6种标示 ...

  9. 【springboot】整合 MyBatis

    转自:https://blog.csdn.net/cp026la/article/details/86493503 1. 简介: 目前,国内大部分公司都使用 MyBatis作为持久层框架.本章整合My ...

  10. 1 TortoiseGit简介

    tortoiseGit是一个开放的git版本控制系统的源客户端,支持Winxp/vista/win7.该软件功能和git一样 不同的是:git是命令行操作模式,tortoiseGit界面化操作模式,不 ...