查找奇数的函数返回额外值- C语言

gcxthw6b  于 2022-12-02  发布在  其他
关注(0)|答案(2)|浏览(124)

我用C语言写了一段代码,从给定的最小值和最大值区间中找到奇数。当函数在int main()内部时,它工作得很好,但当它作为函数在程序外部时就不太好了。
更重要的是,它还打印超出给定最大值的增量。
这是密码...

#include <stdio.h>
// My Function
int odd_numbers(int x, int y) {
    for (int i = x; i <= y; ++i) {
        if (i % 2 == 1) {
            printf("%d\n",i);
        }
    }
}

// Main Program
int main(void) {
    int min_num, max_num;

    printf("Input your minimum number: ");
    scanf("%d", &min_num);
    printf("Input your maximum number: ");
    scanf("%d", &max_num);

    printf("%d",odd_numbers(min_num,max_num));
}

这是输出... As you can see, it adds an 11 besides the 9...我怎么解决这个问题?我试过返回0;它返回值0,但我只想返回奇数以外的数字。

py49o6xq

py49o6xq1#

下面是工作代码。
备注
1.将odd_numbers的返回类型从void更改为int,因为在调用该函数时不会返回任何内容。
1.只调用函数odd_numbers,不需要打印任何东西,因为odd_numbers已经完成了这项工作。

#include <stdio.h>
// My Function
void odd_numbers(int x, int y) {
    for (int i = x; i <= y; i++) {
        if (i % 2 != 0) {
            printf("\n%d",i);
        }
    }
}

// Main Program
int main(void) {
    int min_num, max_num;

    printf("Input your minimum number: ");
    scanf("%d", &min_num);
    printf("Input your maximum number: ");
    scanf("%d", &max_num);

    odd_numbers(min_num,max_num);
}
xiozqbni

xiozqbni2#

下面是修改后的代码。
1.您已声明函数返回类型int,但未返回任何内容。odd_numbers已变为void类型。无需返回任何内容
密码:

#include <stdio.h>

// My Function
void odd_numbers(int x, int y) 
{
    int i = 0;
    for (int i = x; i <= y; i++) 
    {
        if (i % 2 != 0) 
        {
        printf("%d\n", i);
        }
    }
}

// Main Program
int main(void) {
  int min_num, max_num;

    printf("Input your minimum number: ");
    scanf("%d", &min_num);
    printf("Input your maximum number: ");
    scanf("%d", &max_num);

    odd_numbers(min_num, max_num);
    return 0;
}

相关问题