基础练习总结一
- 这个错误犯了三次,后来才真正弄清楚原因:
放一个例子看一下:
在蓝桥杯系统中会直接提示编译出错。。。int main() { for (int a = 0; a < 2; a++) { for (int b = 0; b < 2; b++) { for (int c = 0; c < 2; c++) { for (int d = 0; d < 2; d++) { for (int e = 0; e < 2; e++) { printf("%d%d%d%d%d\n", a, b, c, d, e); } } } } } return 0; }
正确代码:
在Dev-cpp中提示的错误是:int main() { int a, b, c, d, e; for (a = 0; a < 2; a++) { for (b = 0; b < 2; b++) { for (c = 0; c < 2; c++) { for (d = 0; d < 2; d++) { for (e = 0; e < 2; e++) { printf("%d%d%d%d%d\n", a, b, c, d, e); } } } } } return 0; }
可能还是由于编译器的版本太低。。。
所以之后要用for语句应该先声明变量,再使用。不能在for里面声明。
补充一个入门篇:
- Fibonacci数列:
直接用余数做运算不影响结果,而且还能简化运算,减少时间#include <stdlib.h> #include <stdio.h> int main() { int n, i, F[1000001]; scanf("%d", &n); F[1] = F[2] = 1; for (i = 3; i <= n; ++i) F[i] = (F[i - 1] + F[i - 2]) % 10007;//这里直接算的余数 printf("%d\n", F[n]); return 0; }