Ⅰ 用C語言編程輸出菱形 圖案
#include<stdio.h>
void main()
{
int i,j,k;
for(i=1;i<=4;i++) //先列印上邊的四行
{
for(j=1;j<=4-i;j++) //控制要列印的空格數量
printf(" ");
for(k=1;k<=2*i-1;k++) //控制要列印的星號數
printf("*");
printf("
");
}
for(i=1;i<=3;i++)
{
for(j=1;j<=i;j++) //控制要列印的空格數
printf(" ");
for(k=1;k<=7-2*i;k++) //控制要列印的星號數
printf("*");
printf("
");
}
}
(1)菱形圖像的編譯擴展閱讀:
for循環
for循環結構是c語言中最具有特色的循環語句,使用最為靈活方便,它的一般形式為:
for(表達式1;表達式2;表達式3)循環體語句 。(其中;不能省略)
表達式
表達式1為初值表達式,用於在循環開始前為循環變數賦初值。
表達式2是循環控制邏輯表達式,它控制循環執行的條件,決定循環的次數。
表達式3為循環控制變數修改表達式,它使for循環趨向結束。
循環體語句是在循環控制條件成立的情況下被反復執行的語句。
但是在整個for循環過程中,表達式1隻計算一次,表達式2和表達式3則可能計算多次,也可能一次也不計算。循環體可能多次執行,也可能一次都不執行。
先執行表達式2,然後執行循環結構,最後表達式3,一直這樣循環下去。
for循環語句是c語言種功能最為強大的語句,甚至在一定程度上可以代替其他的循環語句。
do
do循環結構,do 1 while⑵;的執行順序是1->2->1...循環,2為循環條件。
while
while循環結構,while(1) 2; 的執行順序是1->2->1...循環,1為循環條件
以上循環語句,當循環條件表達式為真則繼續循環,為假則跳出循環。
Ⅱ 簡單c語言編譯
Ⅲ 用C語言編程 輸出*號排列成的菱形
#include<stdio.h>
intdiffabs(inta,intb){//返回a,b差值的絕對值,即|a-b|
return(a>b)?(a-b):(b-a);
}
voidLozenge(unsignedintn,charc){//a為菱形邊長,b為組成菱形的字元
unsignedinti,j,m;
for(i=0;i<n;i++){
m=diffabs(n/2,i);
for(j=0;j<m;j++)printf("");//輸出每行前導空格
for(j=0;j<2*(n/2-m)+1;j++)printf("%c",c);
printf(" ");
}
}
intmain(){
Lozenge(11,'*');
printf(" ");
return0;
}
Ⅳ c璇璦杈撳嚭鑿卞艦
1銆侀栧厛錛岃緭鍏ラ勫勭悊鎸囦護#include stdio.h涓庡嚱鏁板師鍨媣oid print(int n)銆
鍏朵腑錛宯琛ㄧず琛屾暟銆
2銆佺劧鍚庯紝瀵硅緭鍏ョ殑n榪涜屾彁鍓嶅垽鏂錛岃嫢灝忎簬0鎴栦負鍋舵暟錛屽垯緇撴潫鎵撳嵃銆
3銆佹帴鐫瀵逛笂鍗婁釜鑿卞艦榪涜岃緭鍑(鍖呮嫭鏈闀跨殑琛)銆備嬌鐢ㄤ袱灞傚驚鐜榪涜岃緭鍑猴紝鍒嗗埆鎺у埗琛屾暟涓庤屽唴鐨勪綅緗銆
4銆佹帴鐫瀵逛笅鍗婁釜鑿卞艦榪涜岃緭鍑(鍖呮嫭鏈闀跨殑琛)銆備篃浣跨敤涓ゅ眰寰鐜榪涜岃緭鍑猴紝鍒嗗埆鎺у埗琛屾暟涓庤屽唴鐨勪綅緗銆
5銆佸筺=5涓巒=7榪涜岃緭鍑烘祴璇曪紝浠g爜濡備笅銆
6銆佺紪璇戣繍琛屽悗鐨勭粨鏋滃備笅
7銆佷互涓嬫槸鎵鏈夌殑浠g爜錛
#include stdio.h
void print(int n)
{
//鍒ゆ柇n鏄鍚︾﹀悎姝e囨暟鐨勮佹眰
if(n
0 || n % 2 == 0)
//涓嶇﹀悎鍒欑洿鎺ラ鍑
return;
//瀵逛笂鍗婁釜鑿卞艦杈撳嚭
int i = 1,j = 1;
//i鎺у埗琛屾暟
for(i = 1; i = (n + 1) / 2; i++)
{
//j鎺у埗姣忎竴琛岀殑浣嶇疆
//杈撳嚭絀烘牸
for(j = 1; j = (n+1)/2 - i; j++)
printf( );
//杈撳嚭*
for(j = 1; j = 2 * i - 1; j++)
printf(*);
//杈撳嚭鎹㈣
printf(n);
}
//杈撳嚭涓嬩竴鍗
//i鎺у埗琛屾暟
for(i = 1; i = n/2; i++)
{
//j鎺у埗姣忎竴琛岀殑浣嶇疆
//杈撳嚭絀烘牸
for(j = 1; j = i; j++)
printf( );
//杈撳嚭*
for(j = 1; j = n -2 * i; j++)
printf(*);
//杈撳嚭鎹㈣
printf(n);
}
}
//嫻嬭瘯鍑芥暟,嫻嬭瘯n=5鍜宯=7
int main()
{
printf(5n);
print(5);
printf(7n);
print(7);
return 0;
}
宸ュ叿/鏉愭枡
ubuntu+vim+gcc
Ⅳ c語言程序設計輸出菱形圖!!!!
此題解法,我將這個菱形放在了一個二維數組中,因為用二維數組可以界定X的邊界,比較方便一點。循環輸出的時候,特別注意循環跳出的條件,你畫個二維數組,體會一下裡面的數學關系,多上機改改代碼,呵呵。要特別注意q的用途哦。
#include<stdio.h>
voidmain()
{
#defineN7//定義二維數組的行和列
inti,j;
chara[N][N];
intq=N/2;//找到數組的中間列
chart,p;//定義輸出字元,t代表X,p代表Y
printf("qingshuruX,Y: ");
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(" ");
}
}
我這里輸出的是標準的菱形,中間的Y的個數和你給的不一樣,如果你想要你的那種結果,只需要在輸出Y的時候,將循環的邊界再減一個,就可以了,不過圖形是會變形,不會是菱形了。
上機運行的時候,把這些漢字清理了吧,要不可能編譯出問題,好運~