示例3.1:
星星公司致力于信件快递业务,收费标准是:500g以内6元,超过500g9元。
应该就是输入重量,显示钱,那可以用cout和cin,如果w小于500,c是6,否则,c是9。
//practice 3.1
#include <iostream>
using namespace std;
int main()
{int c; //价钱float w;//重量cout<<"w=";cin>>w;if w>500 c=9;elsec=6;cout<<c<<endl;return 0;
}
第10行报错,悄悄看了下答案,应该是得加个括号。if (w>500) c=9; 希望后面知道为什么。
书上给出的答案:
//exam 3.1
#include <iostream>
using namespace std;
int main()
{int c; //价钱float w;//重量cout<<"w=";cin>>w;if (w<=500) c=6;else c=9;cout<<"c="<<c<<endl;return 0;
}
1、if语句
格式1:不要忘记括号
if (表达式)语句
功能:
当条件成立即表达式值为真时,执行“语句“,否则执行if语句下方的语句,执行流程如:
主要是注意括号,逻辑上都一样。
示例3.2:
读入一个整数,输出该数,如果该数是负数,在输出该数前加个提示”注意负数!“
int 判断是否是正负数那就和0比较,let's code it ~
//practice 3.2
#include <iostream>
using namespace std;
int main()
{int x; //定义变量cout<<"请输入";cin>>x;if (x<0) cout<<"注意负数!"<<x<<endl;elsecout<<x<<endl;return 0;
}
嘿嘿,也没那么难嘛~ 看看书中给出的代码吧:
//exam 3.2
#include <iostream>
using namespace std;
int main()
{int n; cout<<"n=";cin>>n;if (n<0) cout<<"注意负数!"<<endl;cout<<n<<endl;return 0;
}
就是没有用else,直接一个if就可以了。
格式2:
if (表达式)
语句1;
else
语句2;
功能:
当条件成立即表达式值为真时,执行”语句1“,否则执行”语句2“。执行流程如图:
示例3.3:
读入一个整数,判断其是偶数还是奇数。
那就是看除以2的余数是0还是1,是1就是奇数,反之偶数。
//practice 3.3
#include <iostream>
using namespace std;
int main()
{int x; //定义变量cout<<"请输入";cin>>x;if (x%2==1) cout<<x<<"是奇数"<<endl;elsecout<<x<<"是偶数"<<endl;return 0;
}
这里注意if后面的表达式整体有个括号,我第一次写成 (x%2)==1,调试的时候就出现了报错。
看看书上写的答案吧:
//exam 3.3
#include <iostream>
using namespace std;
int main()
{int n; cin>>n;if (n%2==0) cout<<n<<"是偶数"<<endl;else cout<<n<<"是奇数"<<endl;return 0;
}
道理是一样的,但是这么写真的好丑哦, ,我还是喜欢用python的缩进和格式来写~ 整齐好看易读一些~
示例3.4:
不想抄题,截图叭:
分数也可能是小数吧,double 更长点,然后就是条件判断。
//practice 3.4
#include <iostream>
using namespace std;
int main()
{double score; //定义变量cout<<"请输入分数";cin>>score;if (score<=80.0) cout<<"欢迎你参加音乐社"<<endl;elsecout<<"非常欢迎你参加音乐社"<<endl;return 0;
}
好啦~ 书上给出的定义变量是 int m; 觉得不严谨,分数也可能是小数嘛。但实际在考试中不会这么模棱两可的,该什么类型会给示例的。
书上给了另一种有趣的方法,就是观察到两句广告词的差异是”非常“,那就这样:
//exam 3.4
#include <iostream>
using namespace std;
int main()
{int m; //定义变量cout<<"m=";cin>>m;if (m>=80) cout<<"非常";cout<<"欢迎你参加音乐社";return 0;
}
2、关系表达式
关系表达式运算符:
等于不等于大于小于大于等于小于等于==!=><>=<=优先级:
定义:
用关系运算符将两个表达式连接起来的式子,称作关系表达式。
一般形式:
表达式 关系运算符 表达式
示例3.5:
设a=5,b=6,c=7.写出下列关系表达式的值。
关系表达式值原因a>b05>6 假,0a+b>b+c011>13假 0(a==3)>=(b==5)1a不等于3,b不等于5,两边都是0,0>=0 真'a'<'b'1对应的字符确实前者小(a>b)>(b<c)00 >1 假没问题~
示例3.6:
不想抄题,截图叭:
做错的:
两次的价钱都列出式子,然后根据大小,选合算的
//practice 3.6
#include <iostream>
using namespace std;
int main()
{int n; //定义变量n,杯子数一定是整数啦~ float x,y;cout<<"请输入杯子数: ";cin>>n;x=3*n*0.88; //大洋商城y=(n-n/8)*3; //百汇商厦if (x<y) cout<<"大洋商城更划算"<<endl;else if (x>y)cout<<"百汇商厦更划算"<<endl;elsecout<<"一样划算"<<endl;return 0;
}
报错了,不能if..elif..else ,姐姐说这里不是elif 是else if 改了之后就对啦~
看下书上写的答案:
//exam 3.6
#include <iostream>
using namespace std;
int main()
{int cup; float a,b;cout<<"cup=";cin>>cup;a=3*cup*0.88; //大洋商城b=(cup-cup/8)*3; //百汇商厦if (a<b) cout<<"大洋商城"<<endl;elsecout<<"百汇商厦"<<endl;return 0;
}
示例3.7:
诶,这种就是数学题然后转换成计算机语言敲代码就好啦~ ~
//practice 3.7
#include <iostream>
using namespace std;
int main()
{float m; cout<<"m=";cin>>m;if (m<100000) cout<<"梨树="<<m/500<<endl;elsecout<<"梨树="<<0.3*m/500<<"桃树="<<0.5*m/600<<"苹果树="<<0.2*m/800<<endl;return 0;
}
诶,遇到了一个问题,这里的桃树咋还是小数呢。。。
//exam 3.7
#include <iostream>
#include <cmath>
using namespace std;
int main()
{int m; cout<<"m=";cin>>m;if (m<100000) cout<<"梨树="<<m/500<<endl;else{cout<<"梨树="<<floor(0.3*m/500)<<"棵"<<endl;cout<<"桃树="<<floor(0.5*m/600)<<"棵"<<endl;cout<<"苹果树="<<floor(0.2*m/800)<<"棵"<<endl;}return 0;
}
floor是取下整~ 是cmath里面的,别忘了头文件。
当if和else 后面有多个要操作的语句时,要用花括号”{}“括起来,将几个语句括起来的语句组合称为复合语句。
作业:
输入一个三位数n,判断是否是水仙花数,如果是,则输出”该数是水仙花数“;不是,则输出”该数不是水仙花数“。水仙花数:是指一个三位数它的每个位上的数字的3次幂之和等于它本身。(153)
#include <iostream>
using namespace std;
int main()
{int n,a,b,c; cout<<"n=";cin>>n;a=n/100;b=(n-a*100)/10;c=n%10;if (a*a*a+b*b*b+c*c*c==n) cout<<n<<"是水仙花数"<<endl;elsecout<<n<<"不是水仙花数"<<endl;return 0;
}