一个猜数字游戏,但是赋初值为0,最初时候会出现0的显示,请问如何消除0?

#include
#include
#include

int main(int argc, char *argv[])
{
int i=0,j=0,n=0;
printf("please enter the number you want:\n%d",i);//手动输入数字不让对方看,这里出错了,先输出了个0
scanf("%d",&i);
while(1)
{
printf("please enter the number you guess:\n%d",j);//这里也出错了,输出了个0
scanf("%d",&j);
if(i==j)
{
printf("Congratulations,YOU GET IT\n");
break;
}
else if(i>j)
{
printf("The number is lower than the number,please try again\n");
}
else if(i<j)
{
printf("The number is higher than the number,please try again\n");
}
};
getch();
return 0;
}

都比,你把
printf("please enter the number you want:\n%d",i);
printf("please enter the number you guess:\n%d",j);
中的%d去掉,后面的,i去掉,下面一句一样的做法,附赠两个简单猜数游戏

  #include<stdio.h>
 #include<stdlib.h>
 #include<time.h> 
 int main()
 {
     int m,x;
    /* 用0调用时间函数time(),将其返回值强制转换为unsigned型,作为参数来调用srand( )函数。
  srand( )是为rand( )函数初始化随机发生器的启动状态,以产生伪随机数,所以常把srand( )称
  为种子函数。用time()返回的时间值做种子的原因是time()返回的是实时时间值,
  每时毎刻都在变化,这样产生的伪随机数就有以假乱真的效果。 */
     srand((unsigned)time(0));
     m=rand()%10000+1;         //产生一个随机数。

  printf("随机发生器随机一个四位数\n"); 
     printf("%d\n",m);        //输入一个四位数m。 
    printf("****************************\n");
     int a[4],b[4];           //a[4]数组存放m的每一位。 
     a[0]=m%10;
     a[1]=m/10%10;
     a[2]=m/100%10;
     a[3]=m/1000;
     int i,k,t;
     for(t=0;;t++)
  {
      int c[4]={1,1,1,1};
     printf("您猜的四位数是:\n"); 
     scanf("%d",&x);          //输入要猜的四位数x。

     b[0]=x%10;               //b[4]数组存放x的每一位。 
     b[1]=x/10%10;
     b[2]=x/100%10;
     b[3]=x/1000;
     int count,j;
     /*************判断相同的数的个数**********/ 
     for(i=0,count=0; i<=3; i++)
  {
      for(j=0; j<=3; j++)
   {
       if(b[j]==a[i]&&c[j])
    {
        count++;
        c[j]=0;
        break;
       }
      }
     } 
     printf("%d ",count);         //count指相同的数的个数。 
    /*************判断相同位置的数的个数**********/ 
     for(i=0,k=0; i<=3; i++)
  {     //k指相同位置上的一致的数的个数 
      if(a[i]==b[i])
      k++;
     }
     printf("%d\n",k);           //k为位置相同的数。 

  if(k==4)
  {
  printf("恭喜您!!!结果正确!!\n"); 
  printf("****************************");
  break;
  }            //k为4时,猜对了。 

     }
     return 0;
}

 #include<stdio.h>
#include <stdlib.h>
#include <time.h> //用到了time函数 
int main(void)
{   
    //存储元数据的数组
    int a[4];
    //以时间为种调用rand()函数生成随机数并赋值
    srand((unsigned) time(NULL));
    for (int i=0;i<4;i++) {
        a[i]=rand()%9;
    //  printf("%d",a[i]);//输出生成的随机数,测试用
        }
    printf("请开始猜吧\n");

    //存储输入数据的数组
    int b[4];       

    //猜测字数的计数器
    static int count=0; 

    for(int j=0;j<4;j++){
        scanf("%d",&b[j]);

    }
    count+=1;


    //while循环控制变量,控制跳出循环
    int control=1;  


    while(control){
        int c=0;        
        //是否全部猜对检测
        for(int i=0;i<4;i++){
            if(a[i]==b[i]){
                c+=1;
                printf("第%d个数猜对了,其值为%d\n",i+1,a[i]);
            }
            if(c==4){
            printf("恭喜你猜对了,你总共猜了%d次",count);
        //直接跳出外层循环
            control=0;  
            }
        }

        //检测数组b中的数是否为猜测数组中有的数
        for(int k1=0;k1<4;k1++){

            for(int i=0;i<4;i++){
                if(i==k1){
                    continue;
                }
                if(b[k1]==a[i]){
                printf("%d是其中的数\n",b[k1]);
                }
            }
        }


        //猜测不成功再猜
        for(int j=0;j<4;j++){
            scanf("%d",&b[j]);

        }count+=1;
    }   
    return 0;
}

你把程序中的
printf("please enter the number you want:\n%d",i);//手动输入数字不让对方看,这里出错了,先输出了个0

printf("please enter the number you guess:\n%d",j);//这里也出错了,输出了个0
这两句改为:
printf("please enter the number you want:");

printf("please enter the number you guess:\n")
这样就不会输出0了,如果不清楚为什么可以去看一下printf函数的使用。
还有一个既然是猜的话,那么前面输入的数字应该在输入之后就清除掉吧。。
在while(1)的前面加上一句system("cls");
如图:
图片说明
运行结果如图:
图片说明