#include<iostream> 头文件
using namespace std; 命名空间//注释看不清
return 0 ; 主函数需要返回一个"0",说明程序正常运行结束。
在主程序中即使不写这一句话,编译器也会在编译时自动加上这句话。不return !0
int ( ans + 0.5) 四舍五入到整数
cout <<2+4 <<" "<<10-2-4; //cout第一次见
cin >> t >> n ; //输入
"故意犯错"方法
cout<< 500.0/3 << endl;
cout<< 5000000.0/ 3<< endl;
cout<< 0.000005 / 3<< end1;
cout<< 5e6/3+5e-6 / 3 - 5e6 / 3<< endl;
输出
166.667
1.6666 7e + 06
1.6666 7e - 06
1.6666 e - 06
在C++11的标准中, <cmath>有 round 这个函数也可以达到四舍五入的作用,
cout << 4.0 / 3 * PI * pow(r,3)<< endl; //不能写成 4/3*PI*pow(r,3)
左边的变量数据类型相匹配
计算答案ans 的时候.distance是整数类刑.delta也是浮点数类型,所以它们相除会变为浮点数类型,刚好可以存在ans变量里。这种现象被称为自动类型转换。
(汉字无法使用一个char 储存)
cout <<(a>b)<<' ';
cout <<(a<=b)<<' '; //判断
cout <<(a !=b)< endl ;
一般不会使用== 判晰 2个浮点数 是否相等 ,浮点数可能会有精度误差
cout <<(p1 ^ p2) << ' '; //两个性质 刚好一个成立
cout << ( !p1 && !p2) ; //同时不成立
cout<< !(p1 ll p2); //也可以这么写
^ 异或运算
if...else if...
else一致
switch -case 一致
问号表达式 S1?S2:S3 S1成立S2 反之S3
#include <iostream>
#include <cstdio> //cstdio
using namespace std;
int main()
{
double ele,pay;
cin>>ele;
if(ele<=150){
pay=ele*0.4463;
}else if(ele>150&&ele<400){
pay=(ele-150)*0.4663 + 150*0.4463;
}else if(ele>400){
pay=(ele-400)*0.5663 + 250*0.4663 + 150*0.4463;
}
printf("%.01f",pay); //"%.01f"
return 0;
}
while(n--) //先判断后--
while(--n) //先--后判断
i= i+++++i //未定义行为
10!=10 死循环 存在浮点数精度误差
i<n 可能造成延迟跳出循环的结果
正确答案 1+0.01<n
例4-14 回文质数 //看书吧.(悟.笔记搬不了了)