ulaula0126 2015-02-03 13:37 采纳率: 50%
浏览 5023
已采纳

求解:编写一个程序,接受一个整数输入,然后显示所有小于或等于该数的素数。

#include
#include
#include

int main(void)
{
int i;
while(scanf("%d",i))
{
for(int j=1;j<=i;j++)
{
for(int k=1;k<j;k++)
{
if(j%k==0)
continue;
else
goto line;
}
line: printf("there are %d",j);
}
}
return 0;
}

为什么程序会显示DEBUG ERROR?

  • 写回答

4条回答 默认 最新

  • 暗曜 2015-02-03 15:46
    关注
    1. scanf的变量i前面少了取址符,虽然不会出现CE,但是输入错误的传入了别的内存地址,楼上的都给出了正确答案 scanf("%d", &i);
    2. 你这个算法是最最最基础的求素数思路,而且还没有去掉开方数到它本身那一段没用的数,算法效率太低,OJ系统上很容易出现TLE错误
    3. 推荐你百度一下筛选法求素数,思路很简单,但是算法效率提高了不少.素数问题在ACM和算法中利用比较广泛,推荐研究透
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 服务器一块硬盘重启过程中安装后,硬盘不识别了怎么修复?
  • ¥15 微信红包不拆包 知道红包金额
  • ¥15 0基础学机器人运动控制要多久?
  • ¥15 .net core 怎么进行中英文转换
  • ¥15 数学的三元一次方程求解
  • ¥20 iqoo11 如何下载安装工程模式
  • ¥15 本题的答案是不是有问题
  • ¥15 关于#r语言#的问题:(svydesign)为什么在一个大的数据集中抽取了一个小数据集
  • ¥15 C++使用Gunplot
  • ¥15 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?