while循环语句猜数程序

为什么删掉最后一行,猜对的次数不显示?
麻烦高人指点,谢谢。

#include<stdio.h>
#include<time.h>
#include<stdlib.h>
main(){
    int a=0,b,i=1;
    srand((unsigned)time(NULL));
    a=rand()% (100-1+1)+1;
    scanf("%d",&b);
    if(a==b)
        printf("你输对了,总共输入1次");
    while(a!=b){
        if(b<a)
             printf("你输入的数小了\n");
        else {
            if(a==b)
             printf("你输入对了,输入%d次",i);
            else
             printf("你输入的数大了\n");}
             scanf("%d", &b);
             i++;}
         }
             printf("你输入对了,输入%d次",i);
        
    
} 

print("你输入对了,输入次数%d",i);
你是指把这一行删了吗?
如果是这个,它这里面的 i 就是用来记录你猜的次数,起到一个计数功能,
每当你 19行 scanf那里输入一个数,紧随其后的i++;
(i=i+1)就会加一,更新你猜的次数
printf是起到打印输出功能,你如果把它删了的话,猜的次数自然就不会显示。

那就是你一次也没猜中呗

具体一点儿怎么说?

如果一次猜对,第一次输出就完成了。
如果不是第一次猜对,当猜对时while直接结束了。
可以直接用while是否结束来判断是否猜对,在最后输出