比较(用函数方法)打印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;


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


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


相关文章
|
8月前
|
存储 C语言
通俗易懂的学习C语言中输入一组数并找出其最大值
通俗易懂的学习C语言中输入一组数并找出其最大值
|
4月前
|
C语言
C语言判断逻辑的高阶用法
在C语言中,高级的判断逻辑技巧能显著提升代码的可读性、灵活性和效率。本文介绍了六种常见方法:1) 函数指针,如回调机制;2) 逻辑运算符组合,实现复杂条件判断;3) 宏定义简化逻辑;4) 结构体与联合体组织复杂数据;5) 递归与分治法处理树形结构;6) 状态机管理状态转换。通过这些方法,可以更高效地管理和实现复杂的逻辑判断,使代码更加清晰易懂。
250 88
|
8月前
|
C语言
【C语言必刷题】4. 打印100~200之间的素数
【C语言必刷题】4. 打印100~200之间的素数
|
C语言
【C语言】输入行数,打印上下对称的菱形
【C语言】输入行数,打印上下对称的菱形
174 0
|
算法 C语言
C语言练级之路num4(有关各种菱形的打印)(用的都是基础的算法),会了这些图形的打印,从此再无你不会用的循环,给你理解的透透的
1.第一题(边框菱形的打印) 2.第二题边框 菱形的进阶 3.第三题(数字菱形的打印) 4.第四题:(空心菱形) 5.第五题(实心菱形): 6.第六题:(外带一个杨氏三角的再一次打印)
打印100到200之间的素数(函数方法)
打印100到200之间的素数(函数方法)
132 0
打印100到200之间的素数(函数方法)
创造函数,并用该函数打印1000-2000年之间的闰年
创造函数,并用该函数打印1000-2000年之间的闰年
62 0
创造函数,并用该函数打印1000-2000年之间的闰年