zoukankan      html  css  js  c++  java
  • c语言实践输出某个区间中不是3的倍数的偶数

    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("
    ");
    
    	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;
    
    }
    

      

     记录一下思考过程。

  • 相关阅读:
    centos 7 -- Disk Requirements: At least 134MB more space needed on the / filesystem.
    DNS Server Centos 7
    生成report由Eamil定時寄出
    WRT 版本说明
    cisco linksys ea3500 刷机 openwrt
    [QNAP crontab 定時執行程式
    实例 编辑 .bashrc(不断更新)
    tar命令
    ls -l 显示年份
    git 丢弃本地代码时遇到的问题
  • 原文地址:https://www.cnblogs.com/yfish/p/9784319.html
Copyright © 2011-2022 走看看