| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 219 人关注过本帖
标题:一个有顺序序列输出问题
只看楼主 加入收藏
yudeyinji198
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:139
专家分:133
注 册:2012-8-30
结帖率:96%
收藏
已结贴  问题点数:2 回复次数:4 
一个有顺序序列输出问题
你们好,我写了个代码想要输出如下的有序列数字,可是不知道为什么i=2,这一行不能输出,在if里测试i,i却可以是2,当出了if后,却不是的,请问是什么回事呢?

///
1  3 4 5 6 7 8 9 10
2 3  5 6 7 8 9 10
3 4 5  7 8 9 10
.......

///
代码:
#include<stdio.h>
#include<stdlib.h>
int main()
{
    int i,n,m;
    n=2;
    m=1;   
    for(i=m; i<11; i++)
    {
        if(i==n) printf("%c",' ');        //判断输出空格位

        else printf("% d",i);
        if(i==10)                        //换行
        {
        printf("\n");
        m=m+1;                            //换行后输出的第一个数
        n=n+2;
        i=m;
        //printf("x=%d",i);            //测试i
        }
    }
    system("pause");
}
搜索更多相关主题的帖子: include 
2012-11-09 22:35
未名湖的云
Rank: 3Rank: 3
来 自:安徽
等 级:论坛游侠
帖 子:130
专家分:190
注 册:2012-10-11
收藏
得分:1 
回复 楼主 yudeyinji198
#include<stdio.h>
#include<stdlib.h>
int main()
{
    int i,n,m;
    n=2;
    m=1;   
    for(i=m; i<11; i++)
    {
        if(i==n)
        {
            printf("%c",' ');
        }                       //判断输出空格位
        
        else
        {
            printf("% d",i);
        }
        if(i==10)                        //换行
        {
            printf("\n");
            i=m;/////////////////////////////////////////////把这个写这里,因为下一次循环的时候for(;;i++)i先++一次,再判断的~~~~~~
            m=m+1;                            //换行后输出的第一个数
            n=n+2;   
        }
    }
    system("pause");
}
2012-11-09 22:54
未名湖的云
Rank: 3Rank: 3
来 自:安徽
等 级:论坛游侠
帖 子:130
专家分:190
注 册:2012-10-11
收藏
得分:0 
回复 楼主 yudeyinji198
#include<stdio.h>
#include<stdlib.h>
int main()
{
    int i,n,m;
    n=2;
    m=1;   
    for(i=m; i<11; i++)
    {
        if(i==n)
        {
            printf("%c",' ');
        }                       //判断输出空格位
        
        else
        {
            printf("% d",i);
        }
        if(i==10)                        //换行
        {
            printf("\n");
            i=m;/////////////////////////////////////////////把这个写这里,因为下一次循环的时候for(;;i++)i先++一次,再判断的~~~~~~
            m=m+1;                            //换行后输出的第一个数
            n=n+2;   
        }
    }
    system("pause");
}
2012-11-09 22:54
小小战士
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:1
帖 子:569
专家分:1313
注 册:2012-11-3
收藏
得分:1 
自己看看吧!这些注释应该你能理解的,很简单的!
#include<stdio.h>
#include<stdlib.h>
int main()
{
    int i,n,m;
    n=2;//n赋初值2
    m=1;//m赋初值1
    for(i=m;i<11;   )//i赋值为m,注意这里没有了i++
    {
        if(i==n) printf("%c",' ');//2乘以行号的数被空格代替
        else printf("% d",i);
        i++;//i++应该放在这里,不然下面的if执行完后有执行了一次i++,2就会被跳过去,第二行开始执行的时候i=3的
        if(i==11) //换行
        {
        printf("\n");//每行完后换行
        m=m+1;//每行首数字依次加1
        n=n+2;//相当于行号乘以2,即第一行不打印2,第二行不打印4,第三行不打印6,...以此类推  
        i=m;//给i赋m值,如此循环,直到i==11退出循环
        }
    }
}
执行结果如下:
 1  3 4 5 6 7 8 9 10
 2 3  5 6 7 8 9 10
 3 4 5  7 8 9 10
 4 5 6 7  9 10
 5 6 7 8 9
 6 7 8 9 10
 7 8 9 10
 8 9 10
 9 10
 10

[ 本帖最后由 小小战士 于 2012-11-9 23:09 编辑 ]

小小战士,战士中的战斗机!
2012-11-09 23:05
yudeyinji198
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:139
专家分:133
注 册:2012-8-30
收藏
得分:0 
谢谢,明白了@
2012-11-09 23:15
快速回复:一个有顺序序列输出问题
数据加载中...
 
   



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

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