| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1186 人关注过本帖
标题:请教有关素数算法的错误。
只看楼主 加入收藏
邹阳
Rank: 6Rank: 6
等 级:侠之大者
威 望:4
帖 子:124
专家分:402
注 册:2015-10-8
结帖率:73.68%
收藏
已结贴  问题点数:20 回复次数:5 
请教有关素数算法的错误。
  自己写了个判断素数的算法,请教错误问题。

#include<stdio.h>
int main()
{
    int i;
    int a=0;
    int num;
    printf("Enter: ");
    scanf("%d",&num);
    switch(num)
    case 0 :
        printf("%d不是素数!\n",num);
        break;
    case 1 :
        printf("%d不是素数!\n",num);
        break;
    default :
        for(i=0;i<=num;i++)
        {
            if(num%i==0)
            {
                a++;
            }
         }
         if(a>2)
         {
             printf("%d不是素数!\n",num);
         }
         else
         {
             printf("%d是素数!\n",num);
         }
         break;
         
    return 0;
}

错误信息:
图片附件: 游客没有浏览图片的权限,请 登录注册



2016-01-12 14:39
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:5 
switch 的花括号呢

DO IT YOURSELF !
2016-01-12 14:41
邹阳
Rank: 6Rank: 6
等 级:侠之大者
威 望:4
帖 子:124
专家分:402
注 册:2015-10-8
收藏
得分:0 
回复 2楼 wp231957
!!!凌乱了~~花括号丢掉了,不过,如果输入非0和1的数字就会停止工作~~不明白

I'm a new comer
2016-01-12 14:46
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:5 
if(num%i==0)  你这个貌似有除0的嫌疑

DO IT YOURSELF !
2016-01-12 14:52
烟波小蓝
Rank: 1
等 级:新手上路
帖 子:1
专家分:5
注 册:2016-1-12
收藏
得分:5 
/*素数函数*/
int prime(int number)
{
    int i=2;
    if(number==2)
    {
        return 1;
    }
    for(i=2;i<number;i++)
    {
        if(number%i==0)
        {
            return 0;
        }
   
    }
    return 1;
}
2016-01-12 15:10
chenzhaoxia
Rank: 1
等 级:新手上路
帖 子:16
专家分:6
注 册:2011-2-1
收藏
得分:5 
0是不能当除数的,如果你将除数改成0他就会报错如果你弄的这个变量 for(i=0;i<=num;i++){ if(num%i==0)他不会检测出来但是运行会错误可以改成
#include<stdio.h>
int main()
{
    int i;
    int a=0;
    int num;
    printf("Enter: ");
    scanf("%d",&num);
    switch(num)
    {case 0 :
        printf("%d不是素数!\n",num);
        break;
    case 1 :
        printf("%d不是素数!\n",num);
        break;
    default :
        for(i=1;i<=num;i++)
        {
            if(num%i==0)
            {
                a++;
            }
         }
         if(a>2)
         {
             printf("%d不是素数!\n",num);
         }
         else
         {
             printf("%d是素数!\n",num);
         }
         break;}
         
    return 0;
}

没有永远成功
2016-01-12 15:22
快速回复:请教有关素数算法的错误。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017358 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved