| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1009 人关注过本帖
标题:换行的问题,求原因
只看楼主 加入收藏
pydlq
Rank: 6Rank: 6
等 级:侠之大者
威 望:1
帖 子:129
专家分:488
注 册:2017-9-5
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:2 
换行的问题,求原因
程序代码:
#include<stdio.h>
#include<math.h>
int main()
{
    int p,q,n,i,j;
    int a[10000];
    printf("输入求素数的范围下限:");
    scanf("%d",&p);
    printf("输入求素数的范围上限:");
    scanf("%d",&q);
    if(p<=2)
        p=2;
    for(i=1;i<=q;i++)
        a[i]=i;
    a[1]=0;
    for(i=2;i<=sqrt(q);i++)
        for(j=i+1;j<=q;j++)
        {
            if(a[i]!=0 && a[j]!=0)
                if(a[j]%a[i]==0)
                    a[j]=0;
        }
    for(i=p,n=0;i<=q;i++)
    {
        if(a[i]!=0)
        {
            printf("%6d",a[i]);
            n++;
        }
        if(n%10==0)                                              
            printf("\n");
     }
    printf("\n");
    getch();
    return 0;
}

为什么输出结果是这样
图片附件: 游客没有浏览图片的权限,请 登录注册
搜索更多相关主题的帖子: 换行 int printf for i++ 
2017-09-28 18:10
vvvcuu
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:12
帖 子:353
专家分:1253
注 册:2014-4-22
收藏
得分:20 
程序代码:
 for(i=p,n=0;i<=q;i++)
    {
        if(a[i]!=0)
        {
            printf("%6d",a[i]);
            n++;
        }                   //记住这个括号
        if(n%10==0)                                              
            printf("\n");//把上面的那个括号移到这里来


   在i++执行过程中,第一个if()虽然不执行,但第二个if()会执行的,i++每执行一次,它都会执行,你可以发现,在257和263之间正好是空了5行(6个换行).
   更改右括号位置后, 第一个if()不执行,第二个if自然也就不执行了.

代码测试环境:  WinXP+C-Free5.0.
2017-09-28 19:09
pydlq
Rank: 6Rank: 6
等 级:侠之大者
威 望:1
帖 子:129
专家分:488
注 册:2017-9-5
收藏
得分:0 
回复 2楼 vvvcuu
明白了 谢谢
2017-09-28 19:18
快速回复:换行的问题,求原因
数据加载中...
 
   



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

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