| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2913 人关注过本帖
标题:新手求解for(i=0;i<10-1-j;i++)
只看楼主 加入收藏
heizhizhu007
Rank: 2
等 级:论坛游民
帖 子:50
专家分:10
注 册:2016-2-19
结帖率:92.31%
收藏
已结贴  问题点数:20 回复次数:7 
新手求解for(i=0;i<10-1-j;i++)
下面语句里的  for(i=0;i<10-1-j;i++)         这个意思不明白  求高手们帮我解答  特别是   i<10-1-j    这一段

#include<stdio.h>
int main()
{
    int arr[10] = { 10,2,3,4,5,6,9,8,7,1 };

    int i,j,t;

    for(j=0;j<10;j++)

        
        for(i=0;i<10-1-j;i++)         

            if(arr[i]>arr[i+1]) /* 由小到大,   由大到小时改为< */
            {
                t=arr[i];
                arr[i]=arr[i+1];
                arr[i+1]=t;
            }


            for(i=0;i<10;i++)
                printf("%d ",arr[i]);
}

[此贴子已经被作者于2016-2-19 20:02编辑过]

搜索更多相关主题的帖子: include 
2016-02-19 19:58
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:7 
首先你要说明程序是干什么用的,这样大家才能帮到你。这个排序方法我见过,但不像上面的那样写的,下面好理解些。
程序代码:
#include<stdio.h>
int main()
{
    int arr[10] = { 10,2,3,4,5,6,9,8,7,1 };

    int i,j,t;

    for(i=0;i<10-1;i++) //i<10-1是为了防止下面i+1越过数组边界
        for(j=i+1;j<10;j++)  //每个元素(arr[i])都与其后面的元素(第一个是arr[i+1])比较
        {
            if(arr[i]>arr[j])  //从小到大排序
            {
                t=arr[i];
                arr[i]=arr[j];
                arr[j]=t;
            }
        }
    
    for(i=0;i<10;i++)
        printf("%d ",arr[i]);
} 


[此贴子已经被作者于2016-2-19 21:56编辑过]


   唯实惟新 至诚致志
2016-02-19 21:02
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:7 
搜冒泡排序法

剑栈风樯各苦辛,别时冰雪到时春
2016-02-19 21:04
heizhizhu007
Rank: 2
等 级:论坛游民
帖 子:50
专家分:10
注 册:2016-2-19
收藏
得分:0 
回复 2楼 qq1023569223
图片附件: 游客没有浏览图片的权限,请 登录注册


运行出来这个
2016-02-19 21:21
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:0 
程序代码:
#include<stdio.h>
int main()
{
    int arr[10] = { 10,2,3,4,5,6,9,8,7,1 };

    int i=0,j=0,t=0;

    for(i=0;i<10-1;i++) //i<10-1是为了防止下面i+1越过数组边界
        for(j=i+1;j<10;j++)  //每个元素(arr[i])都与其后面的元素(第一个是arr[i+1])比较
        {
            if(arr[i]>arr[j])  //从小到大排序
            {
                t=arr[i];
                arr[i]=arr[j];
                arr[j]=t;
            }
        }
    
    for(i=0;i<10;i++)
        printf("%d ",arr[i]);
} 


[此贴子已经被作者于2016-2-19 21:31编辑过]


   唯实惟新 至诚致志
2016-02-19 21:28
ldsh304
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:7
帖 子:242
专家分:755
注 册:2016-1-18
收藏
得分:7 
   for(j=0;j<10-1;j++)//程序要进行10-1轮
         for(i=0;i<10-1-j;i++)    //每轮比较10-1-j次
2016-02-19 22:07
heizhizhu007
Rank: 2
等 级:论坛游民
帖 子:50
专家分:10
注 册:2016-2-19
收藏
得分:0 
回复 6楼 ldsh304
已经解决了 多谢
2016-02-20 10:59
wanglianyi1
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:14
帖 子:647
专家分:2067
注 册:2015-6-18
收藏
得分:0 
排序问题
2016-02-26 08:50
快速回复:新手求解for(i=0;i<10-1-j;i++)
数据加载中...
 
   



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

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