C 未执行主方法
这是一个用埃拉托斯烯筛寻找素数的程序。程序正在编译,但在执行时,它会变得无响应。不会执行print语句本身。我能知道我哪里出错了吗C 未执行主方法,c,C,这是一个用埃拉托斯烯筛寻找素数的程序。程序正在编译,但在执行时,它会变得无响应。不会执行print语句本身。我能知道我哪里出错了吗 #include<stdio.h> int main() { printf("Enter the range"); int n,i; scanf("%d",&n); int j; int a[--n]; for(i=0;i<n;i++) a[i]=i+2; fo
#include<stdio.h>
int main()
{
printf("Enter the range");
int n,i;
scanf("%d",&n);
int j;
int a[--n];
for(i=0;i<n;i++)
a[i]=i+2;
for(i=0;i<n;i++)
if(a[i])
{
printf("%d",a[i]);
for(j=2;(i*j)<n;j++)
a[i*j]=0;
}
return 0;
}
#包括
int main()
{
printf(“输入范围”);
int n,i;
scanf(“%d”和“&n”);
int j;
int a[--n];
对于(i=0;i您的printf
调用可能正在被缓冲,这意味着在缓冲区填满或遇到换行符之前,它可能不会被实际打印
尝试在字符串末尾添加一个换行符,或者调用fprintf(stderr,…)
(未缓冲)。您的程序第一次在循环中无限循环
当i=0时,此循环永远不会结束:
for(j=2;(i*j)<n;j++)
for(j=2;(i*j)“Eratosthenes的筛子”?那是什么?调试器很棒!!试着在程序中键入一个数字,然后点击回车键。别忘了用换行符结束你想看到的输出。@ShivanRaptor:你是在开玩笑,还是在抱怨大写?还是…真的?@ShivanRaptor这是一个。