在这个 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 的结尾 } 括号之前。
Type
在 checkprimenumbers
中未初始化。如果数字恰好是素数,则不会 return 1 而是它恰好包含的任何垃圾值。在开始 for
循环之前设置 Type = 1
。
在main
中,return 0;
在for
循环中,所以程序会在检查第一个数字后退出。在 for
循环的右大括号之后移动 return 0;
。
为什么输出中没有显示所有区间?
#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 的结尾 } 括号之前。
Type
在checkprimenumbers
中未初始化。如果数字恰好是素数,则不会 return 1 而是它恰好包含的任何垃圾值。在开始for
循环之前设置Type = 1
。在
main
中,return 0;
在for
循环中,所以程序会在检查第一个数字后退出。在for
循环的右大括号之后移动return 0;
。