c语言实践输出某个区间中不是3的倍数的偶数
Posted 早上吃什么
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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("\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的倍数的偶数的主要内容,如果未能解决你的问题,请参考以下文章
用c语言编写,输出1-100之间即是3的倍数又是2的倍数的所有数据,每行输出五个