| 网站首页 | 业界新闻 | 小组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
ADSL如何秒变专线,公网IP盒子了解一下千里之行 始于足下
共有 753 人关注过本帖
标题:请教有关素数算法的错误。
只看楼主 加入收藏
邹阳
Rank: 5Rank: 5
等 级:职业侠客
威 望:4
帖 子:117
专家分:382
注 册:2015-10-8
结帖率:87.5%
  已结贴   问题点数: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: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:394
帖 子:13337
专家分:51368
注 册:2012-10-18
  得分:5 
switch 的花括号呢

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

I'm a new comer
2016-01-12 14:46
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:394
帖 子:13337
专家分:51368
注 册: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.035482 second(s), 8 queries.
Copyright©2004-2019, BCCN.NET, All Rights Reserved