OK,先审题,我们最后要输出的那些数是需要满足两个条件的,第一个条件是,这个数不是3的倍数,第二个条件是这个数是偶数。也就是这样的数需要同时满足这两个条件的时候才把这个数输出。

不是3的倍数这个条件在c语言中怎么表达出来呢?  先想一下它的反面,如果一个数是3的倍数改怎么表达,那么它的反面就OK了,num%3==0,表示num这个数是3的倍数,那么不是3的倍数就是 !(num%3)==0

偶数的条件是num%2==0这个就没什么好说的了。

OK,还是从结果出发,最后我们肯定是要输出这些数的,所以一定会有一句

printf("%d",num);

那么num就需要事先定义一下

int num;

printf("%d",num);

但printf语句并不是随随便便就会打印的,是需要满足一定条件的,什么条件呢?

int num;

if(!(num%3==0)&&(num%2==0))

{

  printf("%d",num);

}

OK,我们的num是需要从用户输入的一个区间来找数的,一个一个的往过数,所以需要一个循环,以及用户输入区间。

int num;

int start;

int end;

scanf_s("%d %d",&start,&end);

for(num=start;num<=end;num++)

{

  

if(!(num%3==0)&&(num%2==0))

{

  printf("%d ",num);

}

}

for循环的条件怎么想出来的,为什么是num<=end,我们想什么时候就不循环了,是不是num>end的时候,因为我们是让程序从[start,end]这个区间中找数的,你超过了就不行了,所以num>end 的反面也就是num<=end的时候就是循环继续的条件。

用户输入的start end 是无法预估的,我们最希望用户输入的情况是start小于end这种情况,当start==end的时候也是可以的,只是比较特殊,当start>end的时候,我们就不做输出了,所以需要对满足条件的start和end才会进入循环,所以代码最后变成这个样子了。

int main(void)
{
int num;
int start;
int end; scanf_s("%d %d",&start,&end);
printf("\n"); if (start <= end)
{
for (num = start; num <= end; num++)
{
if (!(num % 3 == 0) && (num % 2 == 0))
{
printf("%d ", num);
}
}
}
else
{
printf("N/A");
}
return 1; }

  

记录一下思考过程。

c语言实践输出某个区间中不是3的倍数的偶数的更多相关文章

  1. C语言实现输出一组数字中的所有奇数

    /*第二题*/ #include<stdio.h> //输入186732468 //输出173 //输入12345677 //输出13577 main(){ ;//输入的数字,数字的长度 ...

  2. C语言实践 输出100以内的素数

    int main() { int isprime = 1; for (int i = 2; i < 101; i++) { isprime = 1;//要确保每次循环都要把这个值设置为1,不然上 ...

  3. hdu6003 Problem Buyer 贪心 给定n个区间,以及m个数,求从n个区间中任意选k个区间,满足m个数都能在k个区间中找到一个包含它的区间,如果一个区间包含了x,那么 该区间不能再去包含另一个数,即k>=m。求最小的k。如果不存在这样的k,输出“IMPOSSIBLE!”。

    /** 题目:hdu6003 Problem Buyer 链接:http://acm.hdu.edu.cn/showproblem.php?pid=6003 题意:给定n个区间,以及m个数,求从n个区 ...

  4. 【c语言】输入一个递增排序的数组的一个旋转,输出旋转数组中的最小元素

    //旋转数组的最小数字 //题目:把一个数组最開始的若干个元素搬到数组的末尾.我们称之为数组的旋转. //输入一个递增排序的数组的一个旋转.输出旋转数组中的最小元素. //比如:数组{3.4,5,1, ...

  5. C语言:计算输出给定数组中每相邻两个元素的平均值的平方根之和。

    //计算输出给定数组中每相邻两个元素的平均值的平方根之和. #include <stdio.h> #include <math.h> ]) { double a,b,s=0.0 ...

  6. 《程序设计语言——实践之路(英文第三版)》【PDF】下载

    <程序设计语言--实践之路(英文第三版)>[PDF]下载链接: https://u253469.pipipan.com/fs/253469-230382234 内容简介 <程序设计语 ...

  7. 《程序设计语言——实践之路【PDF】下载

    <程序设计语言--实践之路[PDF]下载链接: https://u253469.pipipan.com/fs/253469-230382240 内容简介 <程序设计语言--实践之路(第3版 ...

  8. R语言︱H2o深度学习的一些R语言实践——H2o包

    每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- R语言H2o包的几个应用案例 笔者寄语:受启发 ...

  9. 使用函数式语言实践DDD

    长期以来我都在实践OOP,进而通过OOP来实现DDD,特别是如何通过面向对象的技巧来建立一个领域模型.OO的一些特性在建立领域模型时显得恰如其分,能否掌握OO的技巧,对创建领域模型有着至关重要的作用. ...

随机推荐

  1. N位N进制里有多少个N

    32位二进制里有多少个1 https://blog.csdn.net/zhangsj1007/article/details/81411063 有这样一道计算机问题"32位二进制里面有多少个 ...

  2. 三种实现Ajax的方式

    本文主要是比较三种实现Ajax的方式 1. prototype.js 2. jquery1.3.2.min.js 3. json2.js Java代码 收藏代码 后台处理程序(Servlet),访问路 ...

  3. Java基础知识复习(一)

    - JVM内存区域 程序计数器:一个比较小的内存区域,用于指示当前线程所执行的字节码执行到了第几行,是线程隔离的. Java虚拟机栈:Java方法执行的内存模型,用于存储局部变量,操作数栈,动态链接, ...

  4. java代码用户界面网格布局GridLayout.划分为格子区域

    总结:网格布局.很简单,首先要new一个   this.setlayout(new GriedLayout(3,5));里面是行数和列数 package clientFrame; //网格布局练习 i ...

  5. 多线程设计模式(三):Master-Worker模式

    Master-Worker模式是常用的并行模式之一,它的核心思想是,系统有两个进程协作工作:Master进程,负责接收和分配任务:Worker进程,负责处理子任务.当Worker进程将子任务处理完成后 ...

  6. 1099 Build A Binary Search Tree

    1099 Build A Binary Search Tree (30)(30 分) A Binary Search Tree (BST) is recursively defined as a bi ...

  7. 静态方法staticmethod类方法classmethod

    静态方法 只是名义上归类管理,实际上在静态方法里访问不了类或者实例中的任何属性. 类方法 只能访问类变量,不能访问实例变量 属性方法 把一个方法变成一个静态属性,调用的时候不能加() 如果这种属性方法 ...

  8. PHP大小写:函数名和类名不区分,变量名区分

    PHP对大小写敏感问题的处理比较乱,写代码时可能偶尔出问题,所以这里总结一下. 但我不是鼓励大家去用这些规则.推荐大家始终坚持“大小写敏感”,遵循统一的代码规范. 1. 变量名区分大小写 <?p ...

  9. 在工作表左侧中添加TreeView控件

    开发环境基于VSTO:visual studio 2010,VB .Net,excel 2007,文档级别的定制程序. 需求是在sheet的左侧停靠System.Windows.Forms.TreeV ...

  10. N卡控制面板把physx设置为cpu

    一般笔记本官方配置独显都会强于核显,若是独显不够强这里教你一个小技巧来缓解独显的压力:N卡控制面板把physx设置为cpu,可以试试看.对于不强大的独显有点效果.