#include <stdio.h>

int cmp(int x, int y) // compare x and y
{
    return x > y; // 1 if x > y, 0 otherwise
}

void swap(int *x, int *y)
{
    int tmp = *x;

    *x = *y;
    *y = tmp;
}

int main(void)
{
    int a[] = {3, 1, 4, 1, 5, 9, 2, 6, 5}; // array to be sorted
    size_t n = sizeof a / sizeof a[0]; // number of elements
    int count=0;
   for (size_t i = 0; i < n - 1; ++i) {
   int kakunin=0;
       for (size_t j = 0; j < n - 1 - i; ++j) {
           if (cmp(a[j] ,a[j+1])) {
              swap(&a[j],&a[j+1]);
              kakunin=1;
              count++;
 }
}
   if(kakunin==0){
     break;
 }
}

    for (size_t i = 0; i < n; ++i) {
        printf("%d ", a[i]);
    }
    printf("\n");
    printf("swap関数は%d回繰り返されます",count);

    return 0;
}