比较(用函数方法)打印100到200之间的单数,素数,并且请教各位读者,如何区别的不同

简介: 比较(用函数方法)打印100到200之间的单数,素数,并且请教各位读者,如何区别的不同

比较(用函数方法)打印100到200之间的单数,素数,并且请教各位读者,如何区别的不同


在这里,笔者仅仅改变一个代码的顺序,却出现了俩种截然不同的运行结果,表示大为震惊!


但却是又不知道为什么,所以显得略为尴尬!故此,用代码加运行结果,来向大众请教。。。。。


用函数来判断100到200之间的单数,并输出单数


//写一个函数,可以判断一个数是不是单数
//单数返回1;不是单数返回0
#include <stdio.h>
int is_prime(int n)
{
  int j = 0;
  for (j = 2; j < n; j++)             
  {
  if (n % j == 0)
    return 0;
  if (n = j)                                
    return 1;
  }
  //return 1;
}
int main()
{
  //打印100到200之间的单数
  int i = 0;
  for (i = 100; i <= 200; i++)
  {
  if (is_prime(i) == 1)
    printf("%d ", i);
  }
  return 0;
}


运转结果为:


0a2653c851af460fa595bd959398a8f1.png

在这里,可以清晰的看出运转结果中,每个数字之间相差2,故为单数


不服输的笔者认为,for循环为什么要将if (n = j)    return 1; 放在里面,那放在外面是不是....?


因此有了下文:


用函数来判断100到200之间的单数,并输出素数(质数)


具体代码为:


//写一个函数,可以判断一个数是不是素数
//素数返回1;不是素数返回0
#include <stdio.h>
int is_prime(int n)
{
  int j = 0;
  for (j = 2; j < n; j++)
  {
  if (n % j == 0)
    return 0;
  }
  if (n = j)
  return 1;
}
int main()
{
  //打印100到200之间的素数
  int i = 0;
  for (i = 100; i <= 200; i++)
  {
  if (is_prime(i) == 1)
    printf("%d ", i);
  }
  return 0;
}


运行结果为:


6de278e6d6694ce5bb08e7e842b7e74b.png


 在这里,可以清晰的看出运转结果中,每个数字之间相差不规则,且没有因式,故为素数(质数)


具体的代码已经罗列出,细心的读者应该不难看出,笔者仅仅是更改了函数中函数体的for循环中的一部分代码


将单数中的:


for (j = 2; j < n; j++)             
    {
        if (n % j == 0)
            return 0;
        if (n = j)                                
            return 1;
    }


更改为:


for (j = 2; j < n; j++)
    {
        if (n % j == 0)
            return 0;
    }
if(n=j)
    return 1;


简简单单的一个代码的改变,却将运行结果发生了巨大改变


紧急求教,笔者之前还能看懂点自己写的代码,但是经过这个出乎意料的改变,突然间发现,迷茫了


相关文章
|
4月前
【变态面试题】【两种解法】不能创建临时变量(第三个变量),实现两个数的交换
【变态面试题】【两种解法】不能创建临时变量(第三个变量),实现两个数的交换
38 0
【变态面试题】【两种解法】不能创建临时变量(第三个变量),实现两个数的交换
|
4月前
|
Java Python
循环程序举例
循环程序举例
40 1
|
3月前
|
存储 数据库
【随手记】顺序I/O和随机I/O的定义和区别
【随手记】顺序I/O和随机I/O的定义和区别
69 1
|
4月前
|
C语言
每天一道C语言编程:求N以内的素数(普通方法+优化方法)
每天一道C语言编程:求N以内的素数(普通方法+优化方法)
38 0
|
算法 C语言
C语言练级之路num4(有关各种菱形的打印)(用的都是基础的算法),会了这些图形的打印,从此再无你不会用的循环,给你理解的透透的
1.第一题(边框菱形的打印) 2.第二题边框 菱形的进阶 3.第三题(数字菱形的打印) 4.第四题:(空心菱形) 5.第五题(实心菱形): 6.第六题:(外带一个杨氏三角的再一次打印)
打印100到200之间的素数(函数方法)
打印100到200之间的素数(函数方法)
103 0
打印100到200之间的素数(函数方法)