Wangx_wang 2023-10-20 11:27 采纳率: 85.7%
浏览 3
已结题

为什么我的这个运行结果一直为空 是哪里出错了

求的是m 和n之间的素数
#include <stdio.h>
int main()
{
    int m, n, i, x;
    scanf("%d,%d", &m, &n);
    for (i = m; i <= n; i++)
    {
        for (x = 2; x <= i; x++)
        {
            if (i % x == 0)
            {
                break;
            }
        if(i==x) 
           {
            printf("%d ", i);
            }
        }
 
 
    }
    return 0;
}

  • 写回答

2条回答 默认 最新

  • mr-element 2023-10-20 11:29
    关注

    在for循环中,应该将if(i==x)检查放在第二个for循环的外部,以便在所有可能的x值都被测试后,才确定i是素数。

    
    #include <stdio.h>
    
    int main() {
        int m, n, i, x;
        scanf("%d,%d", &m, &n);
        for (i = m; i <= n; i++) {
            for (x = 2; x <= i; x++) {
                if (i % x == 0) {
                    break;
                }
            }
            if (i == x) {
                printf("%d ", i);
            }
        }
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 10月28日
  • 已采纳回答 10月20日
  • 创建了问题 10月20日