c++语言,while循环问题.里面的变量change把我搞糊涂了,它起到了什么作用?#include void main (){int a[10],i,j,t,n,change;for (j=0;j0&&change==1) /*为什么不直接写成n>0*/{change=0; /*这又是什么?*/for (j=0;j

来源:学生作业帮助网 编辑:作业帮 时间:2024/09/09 04:00:56
c++语言,while循环问题.里面的变量change把我搞糊涂了,它起到了什么作用?#include void main (){int a[10],i,j,t,n,change;for (j=0;j0&&change==1)   /*为什么不直接写成n>0*/{change=0;   /*这又是什么?*/for (j=0;j
xNAǯxIW| Bj,m/ +#"~QB,.WB.MJaq/xʅ^ gs3%*r+imZ9-tkCIf&$֡k\˫ƒۈj+45qz}O>K~)|}R !(HWv_Dր xBjޖŵ+lI^kbYcw~qϬ~hg  ,'saNϳ:͒89h(Z']f>zxBo`WmC6z.eo \~m?,&K$QkN.+VB;q587?5Ez6K%;U/bk* \ >-Х7\G\"(gmҰ外:BQ$k#"Ѹ8"Va/BWH:ɚQźLۤ69i;KlH?e>ANz |D@ȉƬmZZL?4v~B<cmf܃~AYn"5)т~11Sfس#{-PԬܦs87 b[a?G(>CI8aShmu zo%dLHq 9[]@{9~xaԥZOhHU|A# %F?-qg_MUx Ssѧky*U<[U؏o/Dx"o]q%A%ڒ%&i>,$/G

c++语言,while循环问题.里面的变量change把我搞糊涂了,它起到了什么作用?#include void main (){int a[10],i,j,t,n,change;for (j=0;j0&&change==1) /*为什么不直接写成n>0*/{change=0; /*这又是什么?*/for (j=0;j
c++语言,while循环问题.里面的变量change把我搞糊涂了,它起到了什么作用?
#include
void main ()
{
int a[10],i,j,t,n,change;
for (j=0;j0&&change==1) /*为什么不直接写成n>0*/
{
change=0; /*这又是什么?*/
for (j=0;ja[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
change=1; /*为什么呢?*/
}
}
n--;
}
}
for (i=0;i

c++语言,while循环问题.里面的变量change把我搞糊涂了,它起到了什么作用?#include void main (){int a[10],i,j,t,n,change;for (j=0;j0&&change==1) /*为什么不直接写成n>0*/{change=0; /*这又是什么?*/for (j=0;j
change 是用来控制循环的,整个while循环是将当前已经输入的n的数据全部从小到大的排序.只有每次在循环里面的有发生数据的交换,change才会被值为1,如果change为0说明数组已经有序了,你是的只需要while(n a[j+1] = 3, 交换: 1 2 4 3 5(change 置为1)
第一交换完,整个数组还不是有序的,需要继续的执行.
第二次进入while:
j = 0 时, a[j] = 1 < a[j+1] = 2, 不交换: 1 2 4 3 5
j = 1 时, a[j] = 2 < a[j+1] = 4, 不交换: 1 2 4 3 5
j = 2 时, a[j] = 4 > a[j+1] = 3, 交换: 1 2 3 4 5(change 置为1)
j = 3 时, a[j] = 4 < a[j+1] = 5, 不交换: 1 2 4 3 5
整个while之后, change为1, 主要再次的进入执行, 检查.
这次由于所以的数已经有排序了
j = 0 时, a[j] = 1 < a[j+1] = 2, 不交换: 1 2 3 4 5
j = 1 时, a[j] = 2 < a[j+1] = 3, 不交换: 1 2 3 4 5
j = 2 时, a[j] = 3 < a[j+1] = 4, 不交换: 1 2 3 4 5
j = 3 时, a[j] = 4 < a[j+1] = 5, 不交换: 1 2 3 4 5
这次完了之后change=0; 不用在继续执行while了.
这样有了change变量控制之后,循环的次数就少多了.