7777777-4396 发表于 2020-6-28 11:26:28

改错

下列给定程序中,fun函数的功能是:判断一个整数是否为素数,若是素数则返回1,否则返回0。

在main函数中,若fun返回1输出YES,若fun返回0输出NO。请改正程序中的错误,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!

1   #include <stdio.h>

2   #include <stdlib.h>

3   int fun(int m)

4   {

5         int k = 2;

6         while(k<=m && m%k)

7             k++

8         if(m = k)

9             return 1;

10      else return 0;

11   }

12   int main()

13   {

14         int n;

15         printf("Please enter n:");

16         scanf("%d", &n);

17         if(fun(n)) printf("YES\n");

18         else printf("NO\n");

19         return 0;

20   }

永恒的蓝色梦想 发表于 2020-6-28 12:11:40

#include <stdio.h>

#include <stdlib.h>

int fun(int m)

{

    for (int n = m >> 1; n > 1; --n)
   
    {
      if (!(m % n))
      
      {

            return 1;

      }

    }

    return 0;
}

int main()

{

    int n;

    printf("Please enter n:");

    scanf("%d", &n);

    if (fun(n)) printf("YES\n");

    else printf("NO\n");

    return 0;

}

sunrise085 发表于 2020-6-28 13:17:47

第七行少个分号
第八行改为 if(m==k)

405794672 发表于 2020-6-28 13:48:11

sunrise085 发表于 2020-6-28 13:17
第七行少个分号
第八行改为 if(m==k)

不错
页: [1]
查看完整版本: 改错