首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

为什么上面程序中,break出现的位置不一样,是如何影响结果的

2013-01-07 
为什么下面程序中,break出现的位置不一样,是怎么影响结果的?# include stdio.hint main (){int a[14]{1

为什么下面程序中,break出现的位置不一样,是怎么影响结果的?
# include <stdio.h>
int main ()
{
    int a[14]={1,2,3,4,13,15,16,19,20,34,56,67,78};        //要多定义一个,这里还要一个空间留给添加的数了,不然又会出现不确定的数!
int n,i,j,temp1,temp2;
printf ("insert number :");
scanf ("%d",&n);
if (n>a[12])
{
    a[13]=n;
}
else
{
for (i=0;i<=12;i++)        //这下面有错误!
{
        if (a[i]>n)
{
    temp1=a[i];
a[i]=n;
for (j=i+1;j<=13;j++)
{
    temp2=a[j];
a[j]=temp1;
temp1=temp2;
}
break;           
}
//break;     //为什么放在这里就不行了???结果就是错的!
}
}
    printf ("the new order is :");
for (i=0;i<=13;i++)
printf ("%5d",a[i]);
printf ("\n");
    return 0;
}

---------------
不都是在第一个for循环里面吗?为什么结果就不一样?
[解决办法]
准确的说你加在正确的地方,那里是为了结束内层循环,放到错误的地方就就结束外层循环了   直接影响结果
不知道能不能给你帮助    如果帮到了,亲,记得结贴给分哦为什么上面程序中,break出现的位置不一样,是如何影响结果的
[解决办法]
        if (a[i]>n)
{

break;               // 只在a[i]>n的时候跳出上层循环
}
//break;      //此处跳出循环,不管a[i]与n的关系,即整个循环只运行了i=0
}

热点排行