找到100到40之间的3的倍数

时间:2014-06-13 06:05:30

标签: c loops for-loop

正如标题所说,我必须在数字40和100之间出现的倍数。我必须用于

  #include <stdio.h>
  #include <conio.h>

   int main()
    {
     int n=3;
     int i=100;
     for(i=100;i>=40;i--)

         printf(" %d ",n*n);
     getch();
     return 0;
    }

这就是我所拥有的。但它只打印了很多次9号。我如何修复它以便它打印出所有3的倍数?

3 个答案:

答案 0 :(得分:3)

为什么要打印n * n? n总是3,n * n总是9.因此总是打印9。你想要做的是遍历40到100之间的所有数字,检查数字是否可被3整除,然后打印出来。当你划分东西时,%运算符会给你余数,所以如果除以3时余数为0,则表示该数字可以被3整除。这就是你要继续的方法:

   #include <stdio.h>
   #include <conio.h>

   int main()
   {
       //int n=3;Don't need n=3, we will simply use 3 itself.
       int i;    //Not needed to initialize to 100 here, you are initializing in loop anyway.  
       for(i=100;i>=40;i--)
       {
           if( i%3 == 0)
               printf("%d\n", i);   
       }


       getch();
       return 0;
   }

上面将从99开始反向打印数字,从42开始。如果你反过来,只需将i初始化为40而不是100,并且循环条件i <= 100并且每次迭代都增加i。 / p>

另一个更简单的解决方案就是这样,因为我们知道40到100之间的第一个3的倍数是42,

#include<stdio.h>

int main()
{
    int i=42;
    while(i<=100)
    {
        printf("%d\n", i);
        i+=3;
    }
    return 0;
}

这里我们只需打印42,然后添加3并打印,然后重复直到i大于100,即它将打印42,45,48 ....继续添加3 .... 99然后当它达到102时,它大于100,所以它会突破循环。

答案 1 :(得分:0)

使用mod代替,使用它来确定数字是否可被3整除,在您的情况n = 3;中,但您可以使用相同的方法查找任意数字的倍数

#include <stdio.h>
  #include <conio.h>

   int main()
    {
     int n=3;
     int i=100;
     for(i=100;i>=40;i--)

      if ((i % n) == 0)   printf(" %d ",i);
     getch();
     return 0;
    }

答案 2 :(得分:0)

试试这个

int n=3;
for(int i=100; i>=40; i--)
{
    if(i%n == 0 )
        printf("%d", i);
}