老师的思路:
对与每个数,只跟左边的数比较
那么就需要两重循环:
-
外层循环 i 从 2 到 n,表示从第二个数开始取,每取一个数就看一下这个数左边有几个数比它大
-
里面的循环就是 j 从1 到 i (外层循环现在取到的是第几个数),一一跟外层循环取的数进行比较,有比较,是不是就可以计数了?
至于为什么外层循环从2开始,是因为第一个数左边肯定没有数比它大,所以我们直接输出一个 0 就可以了
然而我的CODE:
#include<bits/stdc++.h>
using namespace std;
int a[101];
int main(){
int n;
cin >> n;
for(int i = 1; i <= n; i++){
cin >> a[i];
}
for(int i = 1; i <= n; i++){
int cnt = 0;
for(int j = 1; j < i; j++){
if(a[i] > a[j]){
cnt++;
}
}
cout << cnt << " ";
}
return 0;
}