冒泡排序求纠错解决方案

冒泡排序求纠错
C/C++ code

#include "stdafx.h"
#include "stdio.h"

int main()
{
    int arry[100];
    char mark;
    int i,j,k,x;
    int v;
    int flag = 0;

    printf("please input your number that you want to compare,and please add n after the last number!\n");
    for(i = 0;;i++)
    {
        scanf("%d%c",&arry[i],&mark);
        //判断结束
        if (99 == i)
        {
            printf("please in 100 control numbers!\n");
            flag = 1;
            break;
        }
        else if ('n' == mark)
        {
            break;
        }
        do 
        {
            x = 0;
            for (j = 0;j+1 < i;j++)
            {
                if (arry[j] > arry[j+1])
                {
                    k = arry[j +1];
                    arry[j + 1] = arry[j];
                    arry[j] = k;
                    x++;
                }
            }
        } while ( x != 0);

    }
    if (1 == flag)
    {
        printf("Input Wrong!\n");
    }
    else
    {
        printf("Sorted arry is this!\n");
        for (j = 0;j < i;j++)
            printf("%d\n",&arry[j]);
        printf("%d\n",&arry[i]);
        
    }
}




请问错在哪了???我郁闷.

------解决方案--------------------
do 
{
x = 0;
for (j = 0;j+1 < i;j++)
{
if (arry[j] > arry[j+1])
{
k = arry[j +1];
arry[j + 1] = arry[j];
arry[j] = k;
x++;
}
}
} while ( x != 0);

你的冒泡排序,初始化x为0,那么j+1<i不会成立,那么x++就不会执行,最后x还是为0,那么do ...while循环就会终止,冒泡排序就没有作用了。