C语言,奔跑吧,H!

在这里插入图片描述
前面我们已经学会了,如何通过while循环,并结合暂停命令sleep,清屏命令system(“cls”)来实现60秒倒计时。接下来我们将通过这些命令,来实现奔跑的字母H这个小程序。

**算法分析:****如何希望字母H从屏幕的左边跑到屏幕的右边呢?**也就是说第一秒的时候字母H在屏幕的第一行第一列,第二秒的时候字母H在屏幕的第二行第二列,第三秒时在屏幕的第三行第三列,以此类推。该如何实现呢?深入分析,我们知道,如果直接使用printf(“H”); ,字母H就会出现在屏幕的第一行第一列。那如何让字母出现在屏幕的第二行第二列,第三秒出现在屏幕的第三行第三列呢?我们可以用“空格”占位来实现。也就是说,在输出时先输出一个空格,再输出字母H,即printf(" H"); ,在H左边加一个空格来填充第一列,这样H就会出现在第二列。同样,如果希望字母H出现在第一行第三列,只要在输出的时候,在H的左边输出两个“空格”就好了。即printf(" H"); 。好,我们来尝试一下。
在这里插入图片描述

#include<stdio.h>
#include<stdlib.h>//调用system函数 
#include<windows.h>//调用Sleep函数。S是大写的。 
main()
{	system("color f4");
	system("cls");
	printf("H");
	Sleep(1000);
	system("cls");
	printf(" H");
	Sleep(1000);
	system("cls");
	printf("  H");
 } 

怎么样?字母H从左边向右边移动了三步。用这种方法,我们也可以让字母移动50步,但是如果向上面这样写,我们需要复制粘贴50次,然后每一次都要修改printf语句里H前面的空格数,好麻烦。我们仔细分析一下上面的代码,有三个部分基本相同,只有printf语句里H前面的空格数不同,在第一部分字母H前面有0个空格,在第二个部分字母H前面有一个空格,在第三个部分字母H前面有两个空格。好了,只需要解决重复的做按空格这件事—第一部分字母H前面有0个空格,在第二个部分字母H前面有一个空格,在第三个部分字母H前面有两个空格,重复的操作交给计算机,我们来喝奶茶。可以用while循环来解决这个问题。
强调一下,我们需要解决的是:循环一次H在第一行第一列,即H前面有0个空格,循环两次H在第一行第二列,即H前面有一个空格,循环三次H在第一行第三列,即H前面有两个空格。我们发现空格的变化规律是:0,1,2.这与变量a的变化规律是一样的,第一次循环a的值为0,第二次循环a的值为1,第三次循环a的值2。也就是说,每次打印H的时候,同时在H的前面打印a个空格。**如何实现每次循环的时候,打印a个空格呢?**可以用循环嵌套来实现。
在这里插入图片描述
完整代码如下:

#include<stdio.h>
#include<stdlib.h>//调用system函数 
#include<windows.h>//调用Sleep函数。S是大写的。 
main()
{	system("color f4");
	int a,b;
	a=0;
	while(a<=2)
		{	system("cls");
			b=1;
			while(b<=a)
				{	printf(" ");//重复要做的事情是按空格。 
					b++;
				}
			printf("H");//重复要做的事情是输出H。 
			Sleep(1000);
			a++;
				
		}
	 
 } 

在上述代码中,我们用外层循环来控制字母H的运动规律,用内层循环来实现字母H每运动一步需要打印多少个空格的规律。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章