啊哈c语言——逻辑挑战6:奔跑的小人

啊哈c语言——逻辑挑战6:奔跑的小人_第1张图片

首先我们来设计这个小人:

        将这个小人身体的三部分分为3行来分别表示:

第1行用一个大写字母O表示小人的脑袋。

第2行用左尖括号表示小人的右手,用大写字母H表示小人的身 体,用右尖括号>表示小人的右手。

第3行用两个大写字母I表示小人的两条腿,为了对称,两个大写字 母I之间用一个空格隔开。

代码如下:

#include 
#include 
#include 
int main()
{
    printf(" O\n");
    printf("\n");
    printf("I I\n");
    system("pause");
    return 0;
}

现在我们让小人动起来。首先回顾一下让字母奔跑起来的代码:

#include 
#include 
#include 
int main()
{
    int a, b;
    a=0;
    while(a<=2)
    {
        system("cls");
        b=1;
        while(b<=a)
        {
            printf(" ");
            b=b+1;
        }
        printf("H");
        Sleep(1000);
        a=a+1;
    }
    system("pause");
    return 0;
}

我们把上面代码中的

改为:

啊哈c语言——逻辑挑战6:奔跑的小人_第2张图片

完整的代码如下:

#include 
#include 
#include 
int main()
{
    int a, b;
    a=0;
    while(a<=2)
    {
        system("cls");
        b=1;
        while(b<=a)
        {
            printf(" ");
            b=b+1;
        }
        printf(" O\n");
        printf("\n");
        printf("I I\n");
        Sleep(1000);
        a=a+1;
    }
    return 0;
}

        运行后你会发现,只有小人的脑袋往右边移动,身体和腿呆在原地,这是为什么?

        分析后我们发现,让小人往右移动主要通过在小人的左边不停地打印空格来实现。但是我们只在第1行的左边打印了空格,在第2行和第3 行都没有打印空格的语句。因此我们要将打印空格的while循环再复制 一遍分别放在printf("\n");和printf("I I\n");前面,完整的代码如下:

#include 
#include 
#include 
int main()
{
    int a, b;
    a=0;
    while(a<=2)
    {
        system("cls");
        b=1;
        while(b<=a)
        {
            printf(" ");
            b=b+1;
        }
        printf(" O\n");
        b=1;
        while(b<=a)
        {
            printf(" ");
            b=b+1;
        }
        printf("\n");
        b=1;
        while(b<=a)
        {
            printf(" ");
            b=b+1;
        }
        printf("I I\n");
        Sleep(1000);
        a=a+1;
    }
    system("pause");
    return 0;
}

        怎么样,小人是不是奔跑起来啦!

        如果希望小人跑得更远,我们只需把while(a<=2)改为 while(a<=80)。如果让小人跑得更快一点,我们之前已经学习过,只 需把Sleep(1000);改为较小的值就可以了,越小越快,例如,改为 Sleep(100);赶快试一试吧。

你可能感兴趣的:(啊哈c语言,c语言,开发语言)