正如标题所说,我必须在数字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的倍数?
答案 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);
}