#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;
int forcount=0;
int fornaicount=0;
for (size_t i = 0; i < n - 1; ++i) {
fornaicount=0;
for (size_t j = 0; j < n - 1 - i; ++j) {
if (cmp( a[j], a[j+1] )) {
swap( &a[j], &a[j+1] );
count++;
fornaicount++;
}
forcount++;
}
if(fornaicount==0){
break;
}
}
printf("21行目の繰り返し回数%d\n",forcount
);
for (size_t i = 0; i < n; ++i) {
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgY21wKGludCB4LCBpbnQgeSkgLy8gY29tcGFyZSB4IGFuZCB5CnsKICAgIHJldHVybiB4IDwgeTsgLy8gMSBpZiB4ID4geSwgMCBvdGhlcndpc2UKfQoKdm9pZCBzd2FwKGludCAqeCwgaW50ICp5KQp7CiAgICBpbnQgdG1wID0gKng7CgogICAgKnggPSAqeTsKICAgICp5ID0gdG1wOwp9CgppbnQgbWFpbih2b2lkKQp7CiAgICBpbnQgYVtdID0gezMsIDEsIDQsIDEsIDUsIDksIDIsIDYsIDV9OyAvLyBhcnJheSB0byBiZSBzb3J0ZWQKICAgIHNpemVfdCBuID0gc2l6ZW9mIGEgLyBzaXplb2YgYVswXTsgLy8gbnVtYmVyIG9mIGVsZW1lbnRzCiAgICBpbnQgY291bnQ9MDsKICAgIGludCBmb3Jjb3VudD0wOwogICAgaW50IGZvcm5haWNvdW50PTA7CgogICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBuIC0gMTsgKytpKSB7CiAgICAgICAgZm9ybmFpY291bnQ9MDsKICAgICAgICBmb3IgKHNpemVfdCBqID0gMDsgaiA8IG4gLSAxIC0gaTsgKytqKSB7CiAgICAgICAgICAgIGlmIChjbXAoIGFbal0sIGFbaisxXSApKSB7CiAgICAgICAgICAgICAgICBzd2FwKCAmYVtqXSwgJmFbaisxXSApOwogICAgICAgICAgICAgICBjb3VudCsrOwogICAgICAgICAgICAgICBmb3JuYWljb3VudCsrOwogICAgICAgICAgCiAgICAgICAgICAgIH0KICAgICAgICAgZm9yY291bnQrKzsKICAgICAgfQogICBpZihmb3JuYWljb3VudD09MCl7CiAgICAgICAgIGJyZWFrOwp9CiAgICB9CgogICAgcHJpbnRmKCJzd2Fw44Gu5Zue5pWwJWRcbiIsY291bnQpOwogICAgcHJpbnRmKCIyMeihjOebruOBrue5sOOCiui/lOOBl+WbnuaVsCVkXG4iLGZvcmNvdW50KTsKCiAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG47ICsraSkgewogICAgICAgIHByaW50ZigiJWQgIiwgYVtpXSk7CiAgICB9CiAgICBwcmludGYoIlxuIik7CgogICAgcmV0dXJuIDA7Cn0K