我的C程序未提供期望的输出

时间:2020-08-02 12:40:46

标签: c scanf

我是C语言的学习者和新手。我正在使用C进行数字猜谜游戏,但执行不正确,我的if语句未在此代码中执行,请帮忙。

 #include<stdio.h>
    #include<stdlib.h>
    #include<time.h>
    int main(){
        int num, guess, count;
        count = 1;
        srand(time(0));
        num = (rand()%10 + 1);

        do
        {
            printf("Guess the number: \n");
            scanf("%d", guess);
            if(guess>num)
            {
                printf("too large");
            }
            else if(guess<num)
            {
                printf("too small");
            }
            else
            {
                printf("you won!\nIn %d count.", count);
            }
            
            count++;
            
            
        }while(guess != num);
        
        return 0;
    }

代码应该输出为

 Guess the number
     5
    too small!
    Guess the number
    7
    You won in 2 count

但是,如果执行else语句并在scanf函数后中断循环,则不会执行。请帮忙。

2 个答案:

答案 0 :(得分:1)

您的scanf错误:

scanf("%d", guess); // should be scanf("%d", &guess);

答案 1 :(得分:0)

您的if语句没有问题。问题在于scanf()接受格式字符串和指针,但不接受格式和非指针变量。