Другие языки программирования и технологии

Помогите.Массивы.Язык Си.

Дан массив из N целых чисел. Определить количество инверсий в этом массиве (т.е. таких пар элементов, в которых большее число находится слева от меньшего: xi > xj при i < j).
Alexanndr Tiscenco
Alexanndr Tiscenco
7 254
Что-то вам тут наговорили непонятного :)

#include < stdio.h >

int main()
{
int a[10]={1,5,2,7,9,1,3,0,7,6};
int c=0;
for (int i=1;i<10;i++) if (a[ i ] < a[ i-1 ]) c++;
printf("c=%d", c);
}
МА
Максат Алтынбекович
7 165
Лучший ответ
Alexanndr Tiscenco вот, это другое дело )спасибо )только у меня ошибка )
Alexanndr Tiscenco уже исправила ошибку )
// inversions
// Visual C++ 2010 console application
#include <stdio.h>
#include <time.h>
#include <locale.h>
#include <stdlib.h>
#include <conio.h>
#define N 24

void main()
{
setlocale(LC_CTYPE, "Russian_Russia.1251");
srand((unsigned)time(NULL));

int a[N], count = 0;

for (int n = 0; n < N; n++)
{
a[n] = rand();
if ((n) % 6 == 0) printf("\n");
printf("%d\t", a[n]);
}
printf("\n----------------------------");
for (int n = 0; n < N; n++) if (a[n] < a[n + 1] && (n + 1) <= N) count++;
printf("\n Количество инверсий равно: %d", count);

getch();
}
**** Kosmos****
**** Kosmos****
68 563
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cmath>
#include<cstring>
#include<algorithm>
#include<string>
#include<vector>
#include<map>

typedef long long i64;
using namespace std;

class FenwickTree{

public:

vector<int> data;

FenwickTree(int n) : data(n+1, 0)
{
}

inline void add(int numb,int val){

for(int i = numb;i<data.size();>+=val;
}
}

inline int sum_p(int end){
int res=0;

for(int i = end;i>0;i-=i&(-i)){
res+=data;
}

return res;
}

inline int sum_d(int l, int r){
return sum_p(r)-sum_p(l-1);
}

};

//int numb[200000],inv[200000];

int main(){
int t;
scanf("%d",&t);

for(int co=0;co<t;co++){> numbs(numb_t);

for (int i=0;i<numb_t;i++){>);
}

vector<int> numb_s=numbs;

sort(numb_s.begin(),numb_s.end());

map<int,int> rev;

for (int i=0;i<numb_t;i++)>] = i+1;

for (int i=0;i<numb_t;i++)> = rev[numbs];

FenwickTree x(numb_t);

for (int i=0;i<numb_t;i++){>;
res+=x.sum_p(cur - 1);
x.add(cur,1);
}

printf("%lld\n", res);

}

return 0;
}
Даниил Рынк
Даниил Рынк
6 844
Alexanndr Tiscenco оО, чтоб я тут ещё что понимала )
у меня даже в программе не открывается )
спасибо за помощь =)