debug错误汇总

2020.5.28

1.赋值语句中=写成==。maxheight=height;

2.遍历容器vector的范围。for(int i =0;i<temp.size();i++) 循环判断条件不可以用<=.

3.set.end()返回的是set的大小,而不是set最后一个元素。

2020.5.29

1.

结构体可以整体直接赋值,F=temp。不可以只赋值一些,后面还需用更新后的值进行比较运算。

2020.5.30

1.输入格式为:第一行一个数字n,跟着n行字符串。这样的情况输入时要注意数字后的换行符,要用getchar()。

2020.6.7

1.

#include<iostream>
#include<string>
#include<algorithm>
#include<cstdlib>
using namespace std;
bool cmp(char a, char b) {
	return a > b;
}
int main() {
	string s;
	cin >> s;
	s.insert(0, 4 - s.length(), '0');
	do {
		string a = s, b = s;
		sort(a.begin(), a.end(), cmp);
		sort(b.begin(), b.end());
		int ans = stoi(a) - stoi(b);
		s = to_string(ans);
		s.insert(0, 4 - s.length(), '0');
		cout << a << " - " << b << " = " << s << endl;
	} while (s != "6174"&&s != "0000");
	system("pause");
	return 0;
}

在这份代码中,dowhile循环里的s前不可以再定义string,否则会导致a,b一直等于循环体外输入的s,造成死循环,运行超时。

2020.6.10

判断素数:需要判定n能否被2,3,...,(int)sqrt(n)中的一个整除,即可判定n是否为素数。

bool isprime(int a) {
	for (int i = 2;i*i <= a;i++)
		if(a%i==0)
		return false;
	return true;
}

这是正确的写法,注意从2开始而不是0,结束条件包含i*i=a,不要写成<。

2020.6.15

void init() {
	int i = 0, t = 0;
	while (t <= n) {
		fac.push_back(t);
		t = power(++i);
	}
}

初始化函数用到了全局变量n,因此在主函数中要先输入n,才可以调用init()函数。

cin >> n >> k >> p;
	init();

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章