标题:请教一维数组问题
取消只看楼主
kikokokoo
Rank: 2
等 级:论坛游民
帖 子:21
专家分:29
注 册:2011-8-6
结帖率:100%
已结贴  问题点数:20 回复次数:2 
请教一维数组问题
在一组已排序的数组中(由大到小),插入一个数,并保持原数组的排列顺序。
main()
{
    int i,j,p,q,s,n,a[11]={127,3,6,28,54,68,87,105,162,18};
    for(i=0;i<10;i++)
    {
        p=i;q=a[i];
        for(j=i+1;j<10;j++)
        if(q<a[j])
        {
            p=j;q=a[j];
        }
        if(p!=i)
        {
            s=a[i];
            a[i]=a[p];
            a[p]=s;
        }
        printf("%d ",a[i]);
    }
    printf("\ninput number:\n");
    scanf("%d",&n);
    for(i=0;i<10;i++)
        if(n>a[i])
        {
            for(s=9;s>=i;s--)
            a[s+1]=a[s];
            break;

        }
        a[i]=n;
        for(i=0;i<=10;i++)
            printf("%d ",a[i]);
        printf("\n");
        
        system("pause");
}

有个地方想不通,这个内嵌循环里的break,感觉上不加也可以,但是运行结果就不对,请高手解惑,谢谢
 for(i=0;i<10;i++)
        if(n>a[i])
        {
            for(s=9;s>=i;s--)
            a[s+1]=a[s];
            break;
        }
搜索更多相关主题的帖子: number 
2011-08-18 11:50
kikokokoo
Rank: 2
等 级:论坛游民
帖 子:21
专家分:29
注 册:2011-8-6
得分:0 
break的作用是不是只能跳出一层循环。。。看来我的概念不清。。。。
2011-08-18 13:58
kikokokoo
Rank: 2
等 级:论坛游民
帖 子:21
专家分:29
注 册:2011-8-6
得分:0 
明白了,谢谢。的确是跳出外层循环
2011-08-18 14:27



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-347841-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.397169 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved