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每運動一步需要打印多少個空格的規律。

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