當前位置:編程學習大全網 - 編程語言 - c語言程序設計輸出菱形圖!!!!

c語言程序設計輸出菱形圖!!!!

此題解法,我將這個菱形放在了壹個二維數組中,因為用二維數組可以界定X的邊界,比較方便壹點。?循環輸出的時候,特別註意循環跳出的條件,妳畫個二維數組,體會壹下裏面的數學關系,多上機改改代碼,呵呵。要特別註意?q?的用途哦。

#include<stdio.h>

void?main()

{

#define?N?7//定義二維數組的行和列

int?i,j;

char?a[N][N];

int?q=N/2;//找到數組的中間列

char?t,p;//?定義輸出字符,t代表X,p代表Y

printf("qing?shu?ru?X,Y:\n");

scanf("%c,%c",&t,&p);?//?註意此處輸入的時候,不要忘記“,”了哦

for(i=0;i<N;i++)?//將二維數組的值全部先賦值為“空格”

for(j=0;j<N;j++)

a[i][j]='?';

for(i=0;i<q;i++)?//將菱形壹分兩半,這個是上半部分的輸出,以中間列

{

//為開始,向兩邊擴展,為了輸出X?,註意i循環到q-1

a[i][q-i]=t;

a[i][q+i]=t;

for(j=(q-i+1);j<(q+i);j++?)?//以兩邊的X列為邊界,輸出Y

a[i][j]=p;

}

for(i=q;i<N;i++)?//這個是下半部分的輸出,i從q開始循環到最後

{

a[i][q-(N-1-i)]=t;?//仍然是從中間列開始向兩邊擴散,輸出X

a[i][q+(N-1-i)]=t;

for(j=(q-(N-1-i)+1);j<(q+(N-1-i));j++?)?//從X邊界開始從做到右輸出Y

a[i][j]=p;

}

for(i=0;i<N;i++)

{

{for(j=0;j<N;j++)

printf("%c",a[i][j]);}

printf("\n");

}

}?

我這裏輸出的是標準的菱形,中間的Y的個數和妳給的不壹樣,如果妳想要妳的那種結果,只需要在輸出Y的時候,將循環的邊界再減壹個,就可以了,不過圖形是會變形,不會是菱形了。

上機運行的時候,把這些漢字清理了吧,要不可能編譯出問題,好運~

  • 上一篇:怎麽給車載導航升級
  • 下一篇:想發表壹篇關於電梯方面的職稱論文,要如何寫呀,求幫忙
  • copyright 2024編程學習大全網