逆序数是大学线性代数的知识,易知我们要用左边第一个数依次与它右边的数比较大小,然后在用左边第二个数与它右边的数比较,可知我们需要两个循环才能完成所有的数比较大小,代码如下
方案一:
#include<stdio.h>
int main()
{
int arr[2000];
int n,i=0;
scanf("%d",&n);
while(n!=0){
for(i=0,n;i<n;i++)
{
scanf("%d",&arr[i]);
}
int j,count=0;
for(i=0;i<n;i++)
{
for(j=i+1;j<n;j++)
{
if(arr[i]>arr[j]){
count++;
}
}
}
printf("%d\n",count);
scanf("%d",&n);
}
return 0;
}
方案二:
#include<stdio.h>
int main(){
int a[100000];
int n;
while (scanf("%d", &n) != EOF){
int count=0;
if(n==0) return 0;
for(int i=0;i<n;i++){
scanf("%d",&a[i]);
}
for(int i=0;i<n;i++){
for(int j=i+1;j<n;j++){
if(a[i]>a[j]){
count++;
}
}
}
printf("%d\n",count);
}
return 0;
}
标签:count,xtu,return,int,scanf,arr,printf,数据,序数 From: https://blog.csdn.net/2401_87133003/article/details/143651799