一、以下整理了几个基础知识的小案例
1、输入输出练习
int main()
{
double attack1 = 272;
double attack2 = 250;
double attack3 = 240;
cout << left;
cout << setfill('_');
cout << setw(8) << attack1 <<
setw(8) << attack2 <<
setw(8) << attack3 << endl;
}
输出结果:272_____250_____240_____
PS:小结
1)cout << left; 这段代码代表着后面的输出代码都是左对齐
2)setfill(’_’); 这段代码代表空白的字符由‘下划线’填充
2、运算符与表达式
运算符:赋值运算符、算术运算符、关系运算符、逻辑运算符
表达式:符号与操作数的组合
//--------------运算符练习1--------------
int num1 = -5, num2 = 2;
cout << num1 / num2 << endl;
cout << num1 % num2 << endl;
求商(/)
正负根据正正得正,正负得负,负负得正的原则
经常用于:
1、去掉某个数字的个位 1234 % 10 = 4
求余数(取模)(%)
正负跟随第一个参数的符号进行变化
经常用于:
1、取某个数字的个位 1234 % 10 = 4
2、取零数 45天是一个月零几天 45 & 30 = 15
//--------------运算符练习2--------------
int num1 = -5, num2 = 2;
num1 = (num2++) - (--num2);
cout << num1 << '\t' << num2 << endl;
输出结果:0 2
3、类型转换
自动类型转换:把表示范围小的类型的值转换到表示范围大的类型的值(short->int->long->float->double)
int num1 = 5, num2 = 2;
double result = num1 / num2;
cout << "num1 / num2 = " << result << endl;
输出结果:2
强制类型转换:语法:(类型名)变量或数值
int num1 = 5, num2 = 2;
double result = (double)num1 / num2;
cout << "num1 / num2 = " << result << endl;
输出结果:2.5
4、赋值运算符
int num = 1024;
num += 90;
num -= 90;
num *= 90;
num /= 90;
num %= 90;
cout << num << endl;
5、sizeof运算符
结果以字节为单位,可以获得数据类型占用空间内存的大小
cout << sizeof(string) << endl;//28
cout << sizeof(bool) << endl;//1
示例:
int num = 5;
cout << sizeof(num++) << endl;
cout << num << endl;
输出结果是:4 5
原因:sizeof() 只对其括号内的数据进行判断占用空间,里面的所有的对值的操作都不会执行
6、条件判断练习
使用程序判断用户输入的字符是否是合法的硬盘盘符
默认值设置为空字符(默认的空字符为ASCII表为0)
char pan = '\0';
cout << "请输入一个字符,我来判断是否合法:";
cin >> pan;
//'A' ~ 'Z' 65~65+26
if (pan >= 'A' && pan <= 'Z')
{
cout << "是合法盘符!" << endl;
}
else
{
cout << "不是合法盘符!" << endl;
}
7、循环练习(while)
使用循环计算1-100的累加和
int num = 1;
int all = 0;
while (num <= 100)
{
all += num;
num++;
}
cout << all << endl;
8、函数练习(逻辑、面向对象)
//1、例题一:
//π = 16acrtan(1/5) - 4arctan(1/239);
//arctanx = x - x * x * x / 3 + x * x * x * x * x / 5 - …
//直到级数某项绝对值不大于10的-15次方为止,π和x均为double类型(循环停止条件)
//用公式的方式计算π的值
int main()
{
double a = 16.0 * arctan(1 / 5.0);
double b = 4.0 * arctan(1 / 239.0);
//注意:因为整数相除结果取整,如果参数写1/5,1/239,结果就都是0
cout << "PI = " << a - b << endl;
//运行结果:PI = 3.14159
cout << "a = " << a << endl;
}
double arctan(double x) {
//起始的被减数的倍数(x的平方)
double sqr = x * x;
//当前输入的x的值(用于计算级数绝对值限制)
double e = x;
//(用于确定符号)
double r = 0;
//当前arctanx被减数的被除数(有数值+2的变化并且符号变化)
int i = 1;
//判断当前值
while (e / i > 1e-15)
{
double f = e / i;
r = (i % 4 == 1) ? r + f : r - f;
e = e * sqr;
i += 2;
}
return r;
}