循环超过条件

时间:2016-11-11 00:37:39

标签: c loops for-loop output

#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应该是。

1 个答案:

答案 0 :(得分:1)

循环最多打印98.但是,multiple声明返回int但实际上没有return语句,因此返回值未指定(和在实践中,你将从之前的计算中得到一些任意值)。然后你打印这个“垃圾”返回值,在你的情况下恰好是105。

如果您不希望multiple返回值,则不要声明它返回值,并且不打印它返回的值。