天天看點

C語言之循環列印的相關題目

列印下面圖形
C語言之循環列印的相關題目
# include<stdio.h>
# include<stdlib.h>
# include<string.h>
//列印下列圖形
//      *
//	   * *
//	  * * *
//   * * * *
//  * * * * *
//   * * * *
//    * * *
//     * *
//      *

int main() {
	int i;
	for (i = 0; i < 9;++i) {
		int j;
		//列印每行的空格數
		//每行的空格數與i的關系(i=行數-1)為 abs(i-所有行中某行中的最大空格數)
		for (j = 0; j < abs(i - 4);++j) {
			printf(" ");
		}
		//由于圖形是對稱的,除了兩邊的空格外,可以看出中間每行所占的位字元數與兩邊空格數的關系為:
		//9-2*abs(i-所有行中某行中的最大空格數)
		//奇數字元位填*,偶數字元位填空格
		for (j = 0; j < 9 - 2 * abs(i - 4);++j) {
			if (j%2==0) {
				printf("*");
			}
			else {
				printf(" ");
			}
		}
		printf("\n");
	}
} 
           
C語言之循環列印的相關題目
# include<stdio.h>
# include<stdlib.h>
# include<string.h>
//列印下列圖形
//      *
//	   * *
//	  *   *
//   *     *
//  *       *
//   *     *
//    *   *
//     * *
//      *

int main() {
	int i;
	for (i = 0; i < 9;++i) {
		int j;
		//列印每行的空格數
		//每行的空格數與i的關系(i=行數-1)為 abs(i-所有行中某行中的最大空格數)
		for (j = 0; j < abs(i - 4);++j) {
			printf(" ");
		}
		//由于圖形是對稱的,除了兩邊的空格外,可以看出中間每行所占的位字元數與兩邊空格數的關系為:
		//9-2*abs(i-所有行中某行中的最大空格數)
		//最左邊的字元位和最右邊的字元位為*,其餘的都為空格
		for (j = 0; j < 9 - 2 * abs(i - 4);++j) {
			if (j == 0 || j == 8 - 2 * abs(i - 4)) {
				printf("*");
			}
			else {
				printf(" ");
			}
		}
		printf("\n");
	}
}