鱼C论坛

 找回密码
 立即注册
查看: 2508|回复: 9

目的:判断一个数是否是素数, 不知道哪里错了

[复制链接]
发表于 2012-4-27 22:28:38 | 显示全部楼层 |阅读模式
1鱼币
/*
目的:判断一个数是否是素数
*/
# include <stdio.h>
bool su (int a)
{
int n;
for (n=2;  n<a;  n++)
{
  if ( a%n == 0)
  break;
}
if (n == a)
    return ture;
else
    return false;
}
int mian (void)
{
int val;
scanf ("%d", &val);
if (  su(val)  )
     printf ("是素数!\n");
else
     printf ("不是素数!\n");
return 0;
}
哪个高手帮一下,哪里错了?
怎么闹不明白

最佳答案

查看完整内容

/* 目的:判断一个数是否是素数 */ # include int su (int a) { int n; for (n=2; n
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-4-27 22:28:39 | 显示全部楼层
/*
目的:判断一个数是否是素数
*/
# include <stdio.h>
int su (int a)
{
int n;
for (n=2;  n<a;  n++)
{
  if ( a%n == 0)
  break;
}
if (n == a)
    return 1;
else
    return 0;
}
int main ()
{
int val;
scanf ("%d", &val);
if (  su(val)  )
     printf ("是素数!\n");
else
     printf ("不是素数!\n");
return 0;
}

C语言中没有布尔型这一数据类型,所以用整型代替,非0表示真,0表示假,但可以使用宏来定义TRUE和FALSE,这样更直观。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-4-27 22:51:23 | 显示全部楼层
还是不行啊

最后我干脆把代码改成这样
# include <stdio.h>

int su (int a)
{
        int n;
        for (n=2; n<a; n++)
        {
                if (a%n == 0)
                break;
        }
        if (n == a)
            printf ("是素数!\n");
        else
           printf ("不是素数!\n");

}

int mian (void)
{
        int val;
        scanf ("%d", &val);
        su(val);
        return 0;
}
可是错误提示还是跟上面一样啊!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-4-28 00:01:20 | 显示全部楼层
我以为你看出来了 你的主函数 int mian 要改成 int main 你把我的代码以复制粘贴编译运行下咯,我编译时没错误的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-4-28 00:37:30 | 显示全部楼层
路过……正在学习中……
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-4-28 07:40:58 | 显示全部楼层
哎,还是细节问题啊!
不过,谢谢了!
呵呵{:1_1:}
继续努力,加油
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-4-28 11:05:38 | 显示全部楼层
练习打代码时要多注意细节!!逻辑错误机器是检查不出来的,这需要我们细心!!楼主要继续努力啊!附上一个用筛选法求素数的源码:

  1. #include<stdio.h>
  2. #include<math.h>
  3. int main()
  4. {
  5.     int i , j , n , a[101] ;
  6.     for( i = 1;i <= 100;i++)
  7.         a[i] = i ;
  8.     a[1] = 0 ;
  9.     for( i = 2 ;i < sqrt(100);i++)
  10.         for( j = i + 1; j <= 100;j++)
  11.             {if( a[i] != 0 && a[j] != 0 )
  12.                 if( a[j] % a[i] == 0 )
  13.                     a[j] = 0 ;
  14.             }

  15.     printf("\n");
  16.     for( i = 2,n = 0;i <= 100;i++ )
  17.         { if( a[i] != 0 )
  18.             { printf("%5d",a[i]);
  19.               n++;
  20.             }
  21.           if( n == 10)
  22.             { printf("\n");
  23.               n = 0 ;
  24.             }
  25.         }
  26.      printf("\n");
  27.      return 0 ;

  28. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-4-28 12:03:04 | 显示全部楼层
  1. # include <stdio.h>

  2. int su (int a)
  3. {
  4.          int n;
  5.          for (n=2; n<a; n++)
  6.          {
  7.                  if (a%n == 0)
  8.                  break;
  9.          }
  10.          if (n == a)
  11.              printf ("是素数!\n");
  12.          else
  13.             printf ("不是素数!\n");
  14.                  return 0; //编译器有提示,LZ你的代码缺少这个...

  15. }

  16. int main (void) //拼写错误啊,你看你代码,是mian...
  17. {
  18.          int val;
  19.          scanf ("%d", &val);
  20.          su(val);
  21.          return 0;
  22. }
复制代码


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-4-28 12:42:54 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-4-28 19:40:29 | 显示全部楼层
/*
目的:判断一个数是否是素数
*/
# include <stdio.h>
# include <stdbool.h>
bool su (int a)
{
int n;
for (n=2;  n<a;  n++)
{
  if ( a%n == 0)
  break;
}
if (n == a)
    return 1;
else
    return 0;
}
int main (void)
{
int val;
scanf ("%d", &val);
if (  su(val)  )
     printf ("是素数!\n");
else
     printf ("不是素数!\n");
return 0;
}

c语言中bool型需要定义头文件
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-5-23 20:50

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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