(一)问题
1.在循环中i<n;i++;最后输出的i=n因为在最后加上一次后才会出现条件判断错误;
2.if中判断过于复杂导致出现不进判断的情况改进(可以拆开但仍然会很复杂所以可以尝试利用二进制思维在判断中引入变量通过变量的值进而来进行判断)(实用价值目前不高)
(二)一些思路
1.在循环++与--的问题后有出现了在嵌套循环中的新思路不仅第二个循环可以倒叙还可以j=i+1;
或者j<i;&j=0;这些操作都可以提供新思路:
2.关于标识符的知识变量的知识和简单的数据类型;
3.在循环判断中(如problem43)可能会涉及到多次在循环中嵌套循环++与--的改变往往改变很多值如果保持在循环中的变量如常可以在引入一个与++或--变化相反的变量从而更改初始变量或在变量后进行改变;
源码如下
#include<stdio.h>
int main() {
int n,i,j,y=0;
scanf("%d", &n);
int x = n;
int a[n][n];
for(i = 0;i < n;i++){
for(j = 0;j < n;j++){
a[i][j] = 0;
}
}
for (x = n; x > 0; x--) {
for (i = y; i < x ; i++) {
for (j = y; j < x ; j++) {
if (i == y) {
a[i][j] += j + 1 - y;
}
else if (j == x- 1) {
a[i][j] += i + x - y - y;
}
else if (i == x - 1 && j != x - 1) {
a[i][j] += 3 * (x - 1 - y) + 1 - j + y;
}
else if (j == y && i != y) {
a[i][j] += 4 * (x - 1 - y) - i + 1 + y;
}
else {
a[i][j] += 4 * (x - 1 - y) ;
}
}
}
y++;
}
4.在字符串的相关问题时如连用scanf与gets可能会出现gets会打出空代码的情况;这时可以打一个getchar除掉回车;
(三)
小计划:循环与判断练习可以稍减少练习;开始尝试练习指针;