给定一个 𝑁 数字数组:𝑏1, 𝑏2, . . ., 𝑏𝑁 . 数组 𝑏𝑖 的每个元素都需要计算右侧 (𝑖 < 𝑗) 但小于它 (𝑏𝑖 > 𝑏𝑗 ) 的元素 𝑏𝑗 的数量。 第一行包含一个整数 𝑁 (1 <= 𝑁 <= 100)。第二行包含以空格分隔的 𝑁 正整数——数组元素的值。保证元素的值不超过100。 打印𝑁空格分隔的整数:按顺序,对于输入数组的每个元素,打印满足上述条件的元素个数。我的代码似乎可以工作,但它输出了一些奇怪的值。例如,N=3,输入 3 2 1,输出应该是 2 1 0,但我一般有 1 2 3。请指教可以做什么/更正,拜托:)
#include<stdio.h>
int main(){
int N, i, j, n;
n=0;
scanf("%d", &N);
int b[10000];
for(i=0; i<N; i++){
scanf("%d", &b[i]);
}
for(i=0; i<N; i++){
for(j=0; j<N; j++){
if((i<j)&&(b[i]>b[j])){
n++;
printf("%d", n);
}
}
}
return 0;
}
你检查不正确,计算不正确,推断不正确。绘制每一个错误需要很长时间,采取现成的解决方案。