写这个的原因 一方面是老师鼓励记录,另一方面是因为221第6题实在是写不下去了;我决定分几次写一下.
总体而言
pros
1.恐惧感减少不少 遇到不会的也敢于写
2.思路有了...虽然是完形填空也算吧
3.专业名词的理解加深了,或者是从无到有
4.刷牙,敷面膜和睡觉,好多百思不得其解的问题这时可以想明白
5.打字速度快多了
cons
1.完形填空做多了main函数不会写,也许这是后续可以继续练习的方向
2.避免WA,需要仔细观察cout...很不愿意耶
想和自己说的话
的确有进步 这些oj是有用的
仔细想想,5-6班同学可能办不到一星期不干别的,这个条件难得,再加上老师非常耐心善良
坚持不懈,充足时间时间和有效指导是这次进步的原因
当然也注意到了经常犯基础性错误,或者是一些莫名其妙,庸人自扰的错误
我想每次出问题可以试试这个顺序
1.注意include define using这几个问题
2.注意类和变量名字是不是出错了 类似于truck和trunk,true和ture,一群误写
3.注意方法函数的参数 可能const & * 加上就好了
4.无权限访问,可以试试看friend
5.把已有代码/**/起来,再写一次 能发现莫名其妙的手误
分享几个典型错误
WARNING: 这是菜鸟代码...非常菜的鸟 参考需谨慎
https://www.bjfuacm.com/contest/218/problems
218-1
default写在private,应该写在public对应的构造函数里,类外写方法的时候需要注意,如果写上"=0"这种会报错,可以删去,类似于以下操作
精度那句话如何使用?要加上#include ;要向output函数里写的那样,写两行
以及PI用这种方式精度很高,要注意加#include
#include<iostream>
#include<iomanip>
#include<cmath>
using namespace std;
const double PI = acos(-1.0);
class Circle
{
private:
double radius, area;
public:
Circle(double radius = 0, double area = 0);
void Area();
void Input();
void Output();
};
void Circle::Input()
{
cin >> radius;
}
Circle::Circle(double radius, double area)
{
this->radius = radius;
this->area = area;
}
void Circle::Area()
{
area = PI * radius * radius;
}
void Circle::Output()
{
std::cout << std::setiosflags(std::ios::fixed) << std::setprecision(2) << area;
}
int main()
{
Circle c1;
c1.Input();
c1.Area();
c1.Output();
return 0;
}
218-2
strcpy strcmp strcat这些函数运用...不妨新开一个链接说这个
另外在vs2019中,这个函数使用的话需要在第一行写#define _CRT_SECURE_NO_WARNINGS
当时误打误撞写在了第一行
这里还涉及指针 也是一个没有解决的问题....未来搞懂了就发一个链接
using namespace std;
Book::Book()
{
strcpy(name, "No name");
strcpy(author, "No author");
sale = 0;
}
Book::Book(const char* _name, const char* _author, int _sale)
{
strcpy(name, _name);
strcpy(author, _author);
sale = _sale;
}
Book::Book(const Book& x)
{
strcpy(name, x.name);
strcpy(author, x.author);
sale = x.sale;
}
void Book::Print()
{
cout << "Name: " << name << ", Author: " << author << ", Sale: " << sale << endl;
}
Book::~Book(){}
218-3
惊喜,6.27看6.23写的觉得这题写的挺好
using namespace std;
Rectangle::Rectangle(double Length, double Width)
{
length = Length;
width = Width;
}
double Rectangle::Area()
{
return length * width;
}
double Rectangle::Perimeter()