首页 > 解决方案 > 将值发送到另一个函数但不作为参数

问题描述

我在主函数中定义了 r:

srand(time(NULL));
r = rand() %1024 + 1;

我在主函数中调用的另一个函数中使用了 r。

int make_a_guess(int trial, int min, int max)
{
    for(int i=1; i<=trial; i++)
    {
        int guess;
        printf("(Trial: %d) Make a guess between %d and %d: ",i,min,max);
        scanf("%d\n",&guess);
        if(guess < r)
            min = guess;
        else if(guess < r)
            max = guess;
        else
            printf("You win!");
    }
}

但是我认为函数找不到r。为了防止错误,我声明“int r;” 上面的函数,但我得到“控制到达非无效函数的结尾”错误。由于指令我无法在函数中定义 r,我必须在主函数中定义它。我也不能将它发送为一个参数。

标签: cfunction

解决方案


好吧,我找到了解决方案。我重新调整了这样的功能:

int make_a_guess(int trial, int min, int max){
for(int i=1; i<=trial; i++)
{
    int guess;
    printf("(Trial: %d) Make a guess between %d and %d: ",i,min,max);
    scanf("%d",&guess);
    if(guess < r)
    {
        min = guess;
        continue;
    }
    else if(guess > r)
    {
        max = guess;
        continue;
    }
    else
    {
        printf("You win!\n");
        return 0;
    }
}
printf("You lost!\n");
return 0;

推荐阅读