首页 > 用户发贴区 > 编程问题提问区 > C中 ’do’的用法
2007
06-18
下面这个程序中为什么要在每次动作前加个do? 若是去掉,好像不行。为什么?谢谢。
**********************************************************************************************
**********************************************************************************************

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
main()
{
int a[4],b[4];
int k=0,t=0,r=0,i,j,p=0;
char ch;

do{ if(p==0)    {printf(“\n*********************\n”);
                printf(“*welcome to the game*\n”);
      printf(“*********************\n”);}

      do{
            srand((unsigned)time(NULL));
        a[0]=rand()%10;
        a[1]=rand()%10;
        a[2]=rand()%10;
        a[3]=rand()%10;
    }while(a[0]==a[1]||a[0]==a[2]||a[0]==a[3]||a[1]==a[2]||a[1]==a[3]
    ||a[2]==a[3]);

do{
  printf(“\nplease input four number(0-9):”);
  scanf(“%d %d %d %d”,&b[0],&b[1],&b[2],&b[3]);
                getchar();
                if(b[0]==b[1]||b[0]==b[2]||b[0]==b[3]||b[1]==b[2]||b[1]==b[3]
    ||b[2]==b[3])
    printf(“error!!!!please in put four different number!”);
  else
  {
    r++;
      for(i=0;i<4;i++)
    for(j=0;j<4;j++)
    {if((j==i)&&(b[j]==a)) k++;
    if((j!=i)&&(b[j]==a)) t++;
    }
    printf(“%dA%dB”,k,t);
    if(k!=4)
    {k=0;
    t=0;}
        }
}while((r<=8)&&(k!=4));
if((r==9)&&(k!=4))
        printf(“\n try you best next time!!!\nthe trut answer is:%d %d %d %d”,a[0],a[1],a[2],a[3]);
if(k==4) printf(“\n you are so smart!!!!”);
p++;
printf(“\ndo you want play it again(Y/N)?”);
ch=getchar();
getchar();
r=0;
}while(ch==’y'||ch==’Y');
}

/*说明:直接放在c中就可以运行 */

顶端


C中 ’do’的用法》有 7 条评论

  1. xstar 说:

    循环有三种

    for循环
    while{}循环
    do{}while循环

    其中do{}while中的循环部分肯定会执行一次!

  2. binlida 说:

    谢谢了。呵呵。刚刚看懂了。谢谢。 斑竹。好像论坛人不怎么多哦。呵呵。

  3. binlida 说:

    再看了下这个程序。这个人好叼哦。居然从开始就一直循环。最大的那个do……while似乎太长了点。不容易看哈。

  4. xstar 说:

    有点乱,不过大概意思还是能看懂的.

    可以改一下,设置如下几个函数和程序运行流程!估计这样开起来比较方便!
    [code]
    //获取随机数
    void GetRandNum();

    //获取用户输入
    void GetUserInput();

    //检查数据
    int CheckTheNum();

    //获取用户输入用于判断用户是否继续玩
    int GetInput();

    do {
        GetRandNum();

        GetUserInput();

        ret_input = CheckTheNum();

        if( ret_input == 1 ) {
            printf( "S\" );
        } else {
            printf( "F\" );
        }
    } while( GetInput() == 1 );
    [/code]

  5. binlida 说:

    这个程序做的是 猜数字游戏。

    斑竹,GetRandNum()  GetUserInput()  GetInput()  CheckTheNum()

    这几个函数是不是在C中都已经定义了?

    再研究研究。

  6. xstar 说:

    不是啊,这几个是自己定义的函数,这里只是给出了一个框架和大概需要实现哪些功能!
    这样的话程序结构就比较清晰了,而且修改起来也方便多了!

  7. binlida 说:

    呵呵。我以为咯。呵呵。知道了。谢谢。

留下一个回复