注册 登录
编程论坛 C语言论坛

关于循环的问题,求大佬指点

Leeoo 发布于 2020-05-01 23:46, 1358 次点击
问题是求100到400所有的素数,要求每输出5个换行。
程序代码:

#include<stdio.h>
#include<math.h>
int main()
{
    int n, k, i, m = 0;
    for (n = 101; n <= 400; n = n + 2)
    {
        k = sqrt(n);
            for (i = 2; i <= k; i++)
                if (n % i == 0) break;
            if (i >= k + 1)
            {
                printf("%-4d", n);
                m = m + 1;
            }
                if (m % 5 == 0)printf("\n");
    }
    printf("\n");
}

输出结果是这样的:
只有本站会员才能查看附件,请 登录

我找到了解决的方法,把最后一个if语句纳入上一个if语句内即可。但如果依照错误的代码,每一行最后一个数和下一行第一个数中间差了几个数就应该输出几个\n,图里的结果却不是这样,求大佬指点。
4 回复
#2
forever742020-05-02 08:26
哪个不是这样了?
#3
Leeoo2020-05-02 09:21
比如最后两行数,379和383之间差了3个数,但是只有1个\n。
#4
forever742020-05-02 09:28
你自己写的n=n+2啊,转头就忘了?
#5
Leeoo2020-05-02 09:59
一语点醒梦中人,我犯傻了
感谢大佬
1