1. 程式人生 > 其它 >#C語言第四彈

#C語言第四彈

列印各種圖形

在學習C語言之處能要學習很多的知識打奇奇怪怪的圖形,經典菱形就是一個常常會出此案的例子,那麼我們如何用迴圈來實現呢?

輸出n行n列的**矩陣

效果圖如下

# 程式碼實現 
#include<stdio.h>
int main()
{
	int i, n, j;
	printf("請輸入行數:");
	scanf("%d",&n);
	for(i=0;i<n;i++){
		for(j=0;j<n;j++){
			printf("*");
		}
		printf("\n");
	}
	
	return 0;
}

這個呢就很簡單,就是一個兩個for迴圈,此時能需要注意的就是換行,換行是在內層迴圈結束之後才能換行

帶一些個空格的**矩陣

效果圖

程式碼

#include<stdio.h>
int main(){
	int i ,j,n,k;
	printf("輸入行數:");
	scanf("%d",&n);
	k=0;
	while(k<n){
		printf(" ");
		for(j=0;j<k;j++){
			printf(" ");
		}
		for(i=0;i<5;i++){
			printf("*");
		}
		printf("\n");
		k++;
	}
	return 0;
}

這個呢和前面的有點點不太像,主要是在每一行的前面添加了空格,但其實原理呢還是一樣的,每一個空格也是通過內外層迴圈來實現

菱形

效果圖

#include<stdio.h>
int main()
{
	int n;
	int i,j;
	scanf("%d",&n);
	for(i=0;i<n;i++){
		for(j=0;j<n-1-i;j++){
			printf(" ");
		}
		for(j=0;j<2*i+1;j++){
			printf("*");
		}
		printf("\n");
	}
	for(i=0;i<n-1;i++){
		for(j=0;j<=i;j++){
			printf(" ");
		}
		for(j=0;j<2*(n-i-1)-1;j++){
			printf("*");
		}
		printf("\n");
	}
	return 0;
}

對於這個圖形,我們不妨可以看作上下兩部分,上五行輸出,下午四行,

那麼上面部分我們可以看到**的數量是每一行加1,第一行:1個,第二行:2個,第三行:5個,由此我們就可以得出圖形的數量規律則為:n=2*i+1

由此我們就可以知道上半部分,空格的規律就是一個每行減少一個,第一行的空格數量時4個,逐行遞減,規律則為n-i-1

那麼下半部分的輸出呢又和上一部分的程式碼 不太一樣,下半部分空格比較簡單

但是下班部分*的輸出相對要難一點點,有我們的程式碼即可看出下半部分的圖形的規律