#include <stdio.h>
int multiple(int, int);
int main()
{
int i;
int x;
int y;
scanf("%d %d", &x, &y);
printf("%d", multiple(x,y));
}
int multiple(int N,int M)
{
int i;
int result;
for (i=0;i*M<N;i++)
{
result=i*M;
printf("%d", result);
}
}
当我输入(例如 x=100 和 y=7)时,输出显示 105 之前的所有倍数,而不是应有的 98。
最佳答案
循环最多打印 98。但是,multiple
被声明为返回 int
,但实际上没有 return
语句,因此返回值是未指定的(实际上,您将从先前的计算中获得一些任意值)。然后你打印这个“垃圾”返回值,在你的例子中它恰好是 105。
如果您不希望 multiple
返回值,则不要声明它返回值,也不要打印它返回的值。
关于c - 循环遍历条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40539451/