一些比较生动的案例,终于可以摆脱冷冰冰的电话簿了😂
自我错误:
1双循环结构的思考迟钝,没有创建新数组,没有按规定来的输出格式
思路历程:
打开题目,在看到这么一大串的文字后,心寒了一阵。
但是所谓要从繁琐的信息中抽象出本质,从本质信息去回归到理论案例,集诸多案例理解才能成为自己的实学。
1、抽象:首先鱼儿是从左至右拍成一列的,比可爱就是数值的判断,特点是只能和自身前面的所有逐个比较,找出比自身小的。 (蒟蒻的归纳能力,勿喷つ﹏⊂
2、回归:综上,联想自己学过的知识点------一列、元素判断、双循环模板、比较条件的引入
ps:双循环模板:这个是我在初学排序的时候发现的,第一个循环可以理解为几趟,第二个循环理解为一趟循环多少次;
在这里可以适当变形成:用第一个循环的条件固定一个元素,第二个循环用来遍历该元素下标之前的所有元素(第二个循环的循环条件得是个变量,通常为第一个循环的指示值i,使遍历指定元素之前所有元素这个操作可以保证全面性,即随着“指定的固定值”的变化而发生相同的变化。) 在很多地方也会应用到这个模板,如排序,大数字遍历等等。
5555,我也不知道我讲了个啥,如果实在不懂,可以自己研究一下这个方向。つ﹏⊂
3、感想:但是事实上,还是需要一些细节的学习经验积累。例如按照前面1、2步骤还是会掉坑里的(需要一个独立的新数组存放)
4、拓展:目前阅历太少,先鸽了。QAQ
#include<stdio.h>
int main() {
int a[110] ,b[110];
int n, i, j;
int count ;
scanf("%d", &n);
for (i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
for (i = 0; i < n; i++) {
for (j = 0, count = 0; j < i; j++) {
if (a[i] > a[j]) {
count++;
}
}
b[i] = count;
}
for (i = 0; i < n; i++) {
printf("%d ", b[i]);
}
return 0;
}
知识点涉及:
①后比前、全:数组的渐增下标的元素与前面的元素循环比较,(双循环模板实现)
②新数组去存储计量数count,(不能图方便使用a[i],后面的比较还是需要逐一往前面的元素比较的)
错误纠正:
1、一定一动,整体呈现动,第二循环的全面性。(第二循环需要从0遍历 ps:在选择循环中则是一前一后的循环初始值)
2、存储量和可变量的规范命名和管理,可以避免信息的混乱。(这里先不介绍了,你说为什么?因为我根本还不会!!doge