#include <stdio.h>

int main(void)
{
    int i, j, k, temp, n;
    int a, b, c, f;
    int x[] = {88, 39, 13, 14, 65, 34, 22, 94, 92, 20};
    int y[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
    int v = 92;

    n = sizeof(x) / sizeof(x[0]);

    for (i=0;i<n-1;i++) {
        for (j=0;j<n-i-1;j++) {
            if (x[y[j+1]] < x[y[j]]) {
                temp = y[j];
                y[j] = y[j+1];
                y[j+1] = temp;
            }
        }
		printf("%d回目の内側ループ後の配列xは", i+1);
		for (k=0;k<n;k++)
			printf("\t%d", x[k]);
		printf("\n");
		printf("%d回目の内側ループ後の配列yは", i+1);
		for (k=0;k<n;k++)
			printf("\t%d", y[k]);
		printf("\n");
    }

    f = 0;
    a = 0;
    b = n-1;

    while (a<=b) {
        c = (a + b) / 2;
        if (x[y[c]] == v) {
            f = 1;
            break;
        } else if (x[y[c]] < v) {
            a = c + 1;
        } else {
            b = c - 1;
        }
    }

    if (f == 1) {
        printf("成功\n");
        printf("%d\n",y[c]);
    } else {
        printf("失敗\n");
    }

// この例は練習のため故意にコメントを省いたり、わかりにくい変数名を用いたりしています。
// 他人や1週間後の自分にもわかるプログラムにするためには、コメントとわかりやすい変数名が必要です。

}
