1. 在C++中,输出指定精度的参考代码如下:
#include <iostream>
#include <iomanip> //必须包含这个头文件
using namespace std;
void main( )
{ double a =3.14;
cout<<fixed<<setprecision(3)<<a<<endl; //输出小数点后3位
}
2. 将给定日期加一天,要加入跨月、跨年、闰年的判断
void date::adod()
{
day++;
if ((year % 100 != 0 && year % 4 == 0) || (year % 400 == 0))
{
if (month == 2 && day == 30)
{
day = 1;
month ++;
}
}
else if (month == 2 && day == 29)
{
day = 1;
month++;
}
if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12)
{
if (day > 31)
{
day = day - 31;
month++;
}
if (month > 12)
{
year++;
month = month - 12;
}
}
else if (month == 4 || month == 6 || month == 9 || month == 11)
{
if (day > 30)
{
day = day - 30;
month++;
}
}
}
3. 求两数最大公约数(欧几里得算法)
求两数a、b的最大公约数可采用辗转相除法,又称欧几里得算法,其步骤为:
1. 交换a, b使a > b;
2. 用a除b得到余数r,若r=0,则b为最大公约数,退出.
3. 若r不为0,则用b代替a, r代替b,此时a,b都比上一次的小,问题规模缩小了;
4. 继续第2步。
int cf::getg()
{
int a = fz;
int b = fm;
if (a < 0)
{
a = -a;
}
if (b < 0)
{
b = -b;
}
if (b > a)
{
swap(a,b);
}
int l = a % b;
while (l != 0)
{
a = b;
b = l;
l = a % b;
}
return b;
}
4. 不能在const成员函数里用非const成员函数
double point ::getx()const
{
return x;
}
double point::gety()const
{
return y;
}
double point:: getd(const point& p)
{
return sqrt((x - p.getx()) * (x - p.getx()) + (y - p.gety()) * (y - p.gety()));
}
5. 管挖要管埋
有构造函数,就要有析构函数,防止用过多内存
6.类内声明的函数可在类内/类外实现
类外即 <类型名> <类名> :: 函数名
如 double point ::getd()