#include <stdio.h>
void sort(int in[], int a, int b) {
int i,j,mode;
if (a >= b) return;
for (i=a, j=b, mode=1; i < j; mode >0 ? j-- : i++)
if (in[i] > in[j]) {
int c = in[i];
in[i] = in[j];
in[j] = c;
mode = -mode;
}
sort(in, a, i-1);
sort(in, i+1, b);
}
int main(void) {
int m = 0; int x = 0;
int a[10] = {-8,-10,5,6,-10,-3,9,-7,-7,-8};
printf("\nИзначальный массив: ");
for (int i = 0; i < 10; i++) {
printf("%i ", a[i]);
}
printf("\nМетод обменом (пузырьком): ");
for (int i = 0; i < 9; i++) {
for (int j = 0; j < 9-i; j++) {
if (a[j] < a[j + 1]) {
m = a[j];
a[j] = a[j + 1];
a[j + 1] = m;
}
}
}
for (int i = 0; i < 10; i++) {
printf("%i ", a[i]);
}
printf("\nМетод вставкой: ");
for (int i = 0; i < 10; i++) {
x = a[i];
m = i;
while (m > 0 && a[m - 1] > x) {
a[m] = a[m - 1];
m = m - 1;
}
a[m] = x; }
for (int i = 0; i < 10; i++) {
printf("%i ", a[i]);
}
printf("\nМетод выбором: ");
for (int i = 0; i < 10; i++) {
m = i;
for (int j = i + 1; j < 10; j++) {
if (a[j] > a[m]) {
m = j;
}
}
x = a[i];
a[i] = a[m];
a[m] = x;
}
for (int i = 0; i < 10; i++) {
printf("%i ", a[i]);
}
printf("\nМетод разделением (qsort): ");
sort(a, 0, 9);
for (int i = 0; i < 10; i++) {
printf("%i ", a[i]);
}
return 0;
}
Подсчитывает количество элементов массива,которые больше нуля
11111101=253
....................