c - 循环遍历条件

标签 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。

最佳答案

循环最多打印 98。但是,multiple 被声明为返回 int,但实际上没有 return 语句,因此返回值是未指定的(实际上,您将从先前的计算中获得一些任意值)。然后你打印这个“垃圾”返回值,在你的例子中它恰好是 105。

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

关于c - 循环遍历条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40539451/

相关文章:

c - 使用 write 在文件中写入 int 变量

arrays - 在 Perl 中,如何找到数组中最后定义的元素?

c - 什么是函数类型

c - __stdcall 名称修饰的语法是什么?

c++ - 对 GCC 使用 AT&T 内联汇编器

C++:for 循环中的多个退出条件(多个变量):AND -ed 还是 OR -ed?

r - 根据另一个向量中的数据 block 分配一个二进制向量

loops - 如何在 Lisp 中使用嵌套循环配对

matlab - MATLAB 中的矢量化简介 - 有什么好的教程吗?

Javascript - 提示输入值(并将值添加到数组)直到用户输入特定值