【C++基础教程】第三课
上次的课后练习答案
练习一
第一题a=8
第二题8
第三题(int)(a+0.2)
提示:把浮点数转换为整数,用强制类型转换的方式。(int)(...)表示把...的内容强制转换为int类型,同理,(float)(...)表示强制转换为float类型。
练习二
第一题输出:
1 2
3 3
第二题
第一空10 第二空10 第三空100
提示:数位分离的做法,最后一位就是数除以10的余数,十位就是先除以10然后取余10,百位就是直接除以100。可以自己验证一下。
一,输入语句
【题目】从键盘输入一个数,输出这个数的相反数。
分析:我们可以用输入语句来从键盘输入数据。
输入语句的基本格式如下:
cin>>表达式1>>表达式2>>...>>表达式n;
输入语句中,用>>连接的表达式必须是变量。例如,我们运行如下的程序段:
#include<iostream> using namespace std; int main(){ int n; cin>>n; cout<<-n; return 0; }
运行这段程序时,程序会进入“等待输入”的状态,光标在不断闪动。此时,用户就可以从键盘输入数据了。
输入数据后,按下回车键,系统就会输出它的相反数。
【例题】传送门http://noi.openjudge.cn/ch0101/02/。输入三个整数,把第二个输入的整数输出。
提示:我们可以定义三个变量,分别存放三个要求输入的整数。
#include<iostream> using namespace std; int main(){ int a,b,c; cin>>a>>b>>c; cout<<b; return 0; }
【例题】传送门http://noi.openjudge.cn/ch0101/04/。保留3位小数输出一个浮点数。
提示:用“cout<<fixed<<setprecision(x)<<变量”输出保留x位小数的浮点数。
我们定义一个变量,然后通过上述的输出格式控制语句fixed<<setprecision来保留小数位数进行输出。
#include<iostream> #include<iomanip>//注意使用setprecision需要引用这个库!!! using namespace std; int main(){ float x; cin>>x; cout<<fixed<<setprecision(3)<<x; return 0; }
补充阅读:
cin的输入语句是按照换行符和空格作为读入的分隔符的。例如:cin>>a>>b;
我们在控制台这样输入:
1 2
也可以这样输入:
1
2
结果都是一样的。
二,课后练习
1,阅读程序写结果。(http://noi.openjudge.cn/ch0101/08/)
#include<iostream> using namespace std; char a; int main(){ cin>>a; cout<<" "<<a<<endl; cout<<" "<<a<<a<<a<<endl; cout<<a<<a<<a<<a<<a<<endl; return 0; }
输入:x
输出:
2,阅读程序写结果。
#include<iostream> using namespace std; int main(){ int a,b,c,d; cin>>a>>b>>c; d=a+b; cout<<d/c; return 0; }
输入:1 2 3
输出:
3,完善程序:
一个人买了一箱n个苹果,很不幸的是买完时箱子里混进了一条虫子。虫子每x小时能吃掉一个苹果,假设虫子在吃完一个苹果之前不会吃另一个,那么经过y小时还有多少个完整的苹果?
提示:ceil(a)表示a向上取整的值,使用时需要包含cmath库。
#include<iostream> #include<cmath> using namespace std; int main(){ double n,x,y; cin>> _1_ >> _2_ >> _3_; cout << n - _4_ ( _5_ / x); return 0; }