题目:编写一个外部函数,用以判断一个数是否为质数,要求输入部分在主函数内完成

这题考察的是读者对于for循环的基础能力,考点为True与False的理解,难度为:1颗星

 

 1 #include<stdio.h>
 2 void fun(int n)
 3 {
 4     // 质数:只有两个正因数(1和自己)的自然数即为质数。
 5     // 比1大但不是素数的数称为合数。1和0既非素数也非合数。2是最小的质数
 6     if (n <= 0 || n == 1)
 7     {
 8         printf("error");
 9         return 0;
10     }
11 
12     int flag = 1; // 1表示是质数,0表示不是质数
13 
14     // 我们默认用户输入的数为质数
15     // 例如用户输入 n = 17,则 n % i == 0 表达式不会成立,是质数
16     // 例如用户输入 n = 18,则 n % i == 0 表达式成立,不是质数
17     for (int i = 2; i < n; i++)
18     {
19         if (n % i == 0)
20         {
21             flag = 0;
22             break;
23         }
24     }
25 
26     // 如果为1,则是质数,否则不是
27     if (flag == 1)
28         printf("Is a prime number!");
29     else
30         printf("Is not a prime number!");
31 }
32 
33 int main()
34 {
35     int k;    // 使用变量 k 去获取用户输入的数
36 
37     // 输入提示
38     printf("please input 1 intger:");
39     scanf_s("%d",&k);
40 
41     // 调用函数
42     fun(k);
43 }

 

先来看看正确的打开方式

 

再来看看错误的打开方式

 

posted @ 2021-05-16 15:55  北圳南  阅读(230)  评论(0编辑  收藏  举报