鱼C论坛

 找回密码
 立即注册
查看: 3330|回复: 2

编译出现错误,该内存不能为 written,怎样解决

[复制链接]
发表于 2012-8-23 11:39:40 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 ilyou2049 于 2012-8-23 17:33 编辑
  1. #include <stdio.h>
  2. bool IsPrime(int m)
  3. {
  4. int i;
  5. for (i=2; i<=m; ++i)
  6. {
  7.   if ( 0==m%i )
  8.    break;
  9. if (i==m)
  10.   return true;
  11. else
  12.   return false;
  13. }
  14. }
  15. int main(void)
  16. {
  17. int i;
  18. scanf("%d",i);

  19. if(IsPrime(i))
  20.   printf("Yes");
  21. else
  22.   printf("No");
  23. return 0;
  24. }
复制代码

操作系统XP,编译环境VC++6.0,出现如下错误
未命名.jpg

小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-8-23 13:19:45 | 显示全部楼层
错误是由于第18行scanf("%d",i);应该为scanf("%d",&i);
如果要判断质数if (i==m)应该放在if ( 0==m%i )之前,否则break之后return true;永远执行不了了
可以改成
  1. bool IsPrime(int m)
  2. {
  3.         int i;
  4.         for (i=2; i<=m; ++i)
  5.         {
  6.                 if (i==m)
  7.                         return true;
  8.                 if ( 0==m%i )
  9.                         break;                 
  10.         }
  11.         return false;
  12. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2012-8-23 17:32:19 | 显示全部楼层

谢谢,没加取地址符
代码如下就正常了,灰常感谢
  1. #include <stdio.h>
  2. bool IsPrime(int m)
  3. {
  4.         int i;
  5.         for (i=2; i<=m; ++i)
  6.         {
  7.                 if ( 0==m%i )
  8.                         break;
  9.         }
  10.         if (i==m)
  11.                 return true;
  12.         else
  13.                 return false;       
  14.        
  15. }

  16. int main(void)
  17. {
  18.         int i;
  19.         scanf("%d",&i);
  20.        
  21.         if(IsPrime(i))
  22.                 printf("Yes\n");
  23.         else
  24.                 printf("No\n");

  25.         return 0;
  26. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-14 19:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表