一、知识积累
1、除法运算
分苹果:将14个苹果分给4个人,分不掉的苹果放回冰箱。问:
1)每位同学能分到几个苹果?
2)把几个苹果放回冰箱?
#include<iostream>
using namespace std;
int main(){
cout << 14/4 << endl;
/*这里的“/”是整除的符号,
除完后只保留整数的商,
不继续对余数做运算,
因为那样就变成浮点数的除法了;*/
cout << 14%4 << endl;
/*这里的“%”是求余的符号,
对14/4进行求余后,
输出其整除后的余数;*/
return 0;
}
2.浮点数输出
均分肥宅水:把500毫升的肥宅水均分给三个人,问每个人分到多少毫升?
#include<iostream>
using namespace std;
int main(){
cout << 500.0/3 << endl;//cout << 1.0*500/3 <<endl;
/*可以发现,题目里的500在这里写成500.0,这样就把整数化成了浮点数,
对浮点数进行除法运算,就会输出带小数的数字了,
也就是会对余数也做除法,但结果并不一定很精准,
计算机中浮点数的精确位数是有限的。
若在计算过程中需要带小数点的中间量,就可以给除以号前或后的数字乘上1.0*/
return 0;
}
#对于浮点数,还需要注意的是,
计算机表示的浮点数都是有一定的误差的,
故不能出现 浮点数==某个值 这种情况。
3.科学计数法
#include<iostream>
using namespace std;
int main(){
cout << 5e6/50+2e-6-8e+7 <<endl;
/*用e加上后面的数字来表示*10的几次方,e后的数字可正可负;
只能用科学计数法缩写三个或以上的10或-10,100不能写做1e2;*/
return 0;
}
#值得注意的是,用科学计数法表示的数属于浮点数,最好不要让浮点数和整数比大小。
4.数学函数
多重复合计算:计算6的3次方和5的4次方的和,再求这个数除以840的余数,对这个余数开方后,结果减去11,然后取绝对值,之后再整除除以10,再以这个数作为自然常数的指数,再求自然对数,用这个数加上0.1,向上取整后,减去0.1,再向下取整,得到最终答案是1,请写出整个过程的代码。
#include<iostream>
#include<cmath>//这个是数学函数的头文件,要用到那些取几次方、绝对值、自然对数之类的函数,代码前头得加上这句;
using namespace std;
int main(){
int nu=pow(6,3)+pow(5,4);
//pow(a,b)是是取a的b次方的函数,这里的b也可以是分数,但要乘上1.0;
nu=nu%840;
//%为求余运算,只有int类的整形变量才可以用,double就不行;
double num=sqrt(nu)-11;
//sqrt()是开二次方的函数,有点像square,不过是开方而不是平方;
num=fabs(num);
//fabs是取绝对值的函数;
num=num/10;
num=exp(num);
//exp()是取自然对数e的几次方的函数,比如这里就可以得到e的num次方;
num=log(num);
//log()相当于ln,能得到括号里的数的自然对数;
num+=0.1;
/*这里在数的后面加上一个+,
能输出这个数加上等号后的数,
类似的语句叫做自赋值语句,
还可以使用-=、*=、/=和%=;*/
num=ceil(num);
//ceil()是向上取整函数,输出大于或等于这个数的最小整数,ceiling就是天花板;
num-=0.1;
num=floor(num);
//floor()是向下取整函数,输出小于或等于这个数的最大整数,floor就是地板;
cout<<num<<endl;
return 0;
//以上这些数学函数的括号里无论是什么类型的数,经过运算后都会输出double型的数。
5.定义常量
计算面积:有一个半径为5的圆,求它的面积。
#include<iostream>
#define PI 3.1415926535897932
/*这里在代码前声明语句的后面,
可以用#define来定义一个常量,
叫做宏定义,意思就是在最高层次定义这个常量。
常量通常用大写字母表示,
定义后,计算机会自动把接下来程序里所有的PI粗暴地换成定义的值;*/
using namespace std;
int main(){
int r=5;
cout<<PI*pow(r,2)<<endl;
return 0;
#include<iostream>
using namespace std;
int main(){
int r=5;
const double PI=3.1415926535897932;
/*这是第二种定义常量的方法,
就是像定义变量一样,
但是在变量种类前要加一个const,
要注意的是,接下来不能再给这个常量赋值了,
会显示编译错误。总之,在定义常量前,
一定要想好这个数在接下来的程序里是否自始至终都不会改变;*/
cout<<PI*r*r<<endl;
return 0;
}
6.命名变量
#include<iostream>
using namespace std;
int main(){
int _1apple = 1;//给变量起名要一目了然,不能以数字开头,但大小写字母和下划线都可以;
double iPhone = 10000;
cout <<_1apple+iPhone << endl;
return 0;
二、课后习题答案
习题1-1
(1) 3*x+5*y
(2)(c+1)/(a*b)
(3)sqrt(3*pow(a,3)) 或 pow(3*pow(a,3),1.0/2)
(4)(n+2)*(n-9)
习题1-2
对 对 对 错 错 对 对 错 错
习题1-3
建议安装dev C++,手打一遍代码。
习题1-4
(1)扫教室
#include<iostream>
using namespace std;
int main(){
double effic=1.0*(3/3)/3;
double answer=effic*9*9;
cout<<answer<<endl;
return 0;
}
(2)长方形面积
#include<iostream>
using namespace std;
int main(){
int length,width,S;
width=(24-4)/2;
length=width+4;
S=width*length;
cout<<S<<endl;
return 0;
}
(3)竞赛得分
#include<iostream>
using namespace std;
int main(){
cout<<"小A="<<480.0/(1.0+1.4)<<endl;
cout<<"Uim="<<480-480.0/(1.0+1.4)<<endl;
return 0;
}
(4)分苹果
#include<iostream>
using namespace std;
int main(){
cout<<"同学人数="<<(-11*(-1)-(-1)*1)/(3*(-1)-4*(-1))<<endl;
cout<<"苹果个数="<<(3*1-4*(-11))/(3*(-1)-4*(-1))<<endl;
return 0;
}
(5)打字追及
#include<iostream>
using namespace std;
int main(){
cout<<80*12/(120-80)<<endl;
return 0;
}
(6)鸡兔同笼
#include<iostream>
using namespace std;
int main(){
cout<<"兔子数量:"<<(94*1-35*2)/(4*1-1*2)<<endl;
cout<<"鸡的数量:"<<(4*35-1*94)/(4*1-1*2)<<endl;
return 0;
}
(7)银行存款
#include<iostream>
#include<cmath>
using namespace std;
int main(){
cout<<"小A五年后的钱:"<<10000.0*pow((1+0.035),5)<<endl;
cout<<"Uim五年后的钱:"<<10000.0*(1+5*0.04)<<endl;
return 0;
}