#C語言第四彈
阿新 • • 發佈:2021-10-25
列印各種圖形
在學習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
那麼下半部分的輸出呢又和上一部分的程式碼 不太一樣,下半部分空格比較簡單
但是下班部分*的輸出相對要難一點點,有我們的程式碼即可看出下半部分的圖形的規律