在这个 C 程序中,所有间隔都不会出现在输出中

In this C program all intervals don't appear in the output

为什么输出中没有显示所有区间?

#include <stdio.h>
int checkprimenumbers(int i);
int main()
{
    // declar varabiels
    int n1,n2,a,Tayp;
    // input from user
    printf("Enter to integer values: ");
    scanf("%d\n%d",&n1,&n2);
    printf("Prime numbers between %d and %d are: ", n1, n2);
    // condition statment
    for (a= n1 + 1;a < n2; ++a )
    {
        Tayp = checkprimenumbers(a);
        if (Tayp == 1)
            printf("%d ", a)  ;
        
        return 0;
    }
}
// user-defined function
int checkprimenumbers(int i)
{
    int b , Type =1 ;
    for (b = 2 ; b <= i/2; ++b )
    {
        if( i%b == 0)
        {
            Type =0;
            break;
        }
    }
    return Type;
}

程序可以运行,但所有时间间隔都不显示 这是调试后的输出

输入整数值:12

30

12到30之间的质数是:13

将类型初始值设置为 1

 int b,Type=1;

并且您必须将 return 0; 移动到 main 的结尾 } 括号之前。

  1. Typecheckprimenumbers 中未初始化。如果数字恰好是素数,则不会 return 1 而是它恰好包含的任何垃圾值。在开始 for 循环之前设置 Type = 1

  2. main中,return 0;for循环中,所以程序会在检查第一个数字后退出。在 for 循环的右大括号之后移动 return 0;