當前位置:首頁 » 編程軟體 » 打菱形編程

打菱形編程

發布時間: 2022-12-07 17:19:33

A. 如何用c語言編程題輸出菱形圖形

#include "stdio.h" void PrintDiamend(int n) { int i,j,k; if(n==0) n=1; for(i=1;i<=n;i++) { for(j=i;j<n;j++) printf(" "); for(k=1;k<i+1;k++) printf("*"); for(k=1;k<i;k++) printf("*"); printf("\n"); } for(i=1;i<n;i++) { for(j=0;j<i;j++) printf(" "); for(k=i;k<n;k++) printf("*"); for(k=i;k<n-1;k++) printf("*"); printf("\n"); } } int main() { PrintDiamend(4); return 0; }

B. 用C語言打出菱形

#include <stdio.h>

int main()
{
int i,j,k,m;
m = 5;
for(i=0,k=1;i<m/2;i++,k+=2)
{
for(j=i; j <m/2; j++)
printf(" ");
for(j=1;j<k+1;j++)
printf("*");
printf("\n");
}
if(m%2==0)
k-=2;
for(i=m/2;i<m;i++,k-=2)
{
for(j=m/2-2; j <i - 2;j++)
printf(" ");
for(j=1;j<k+1;j++)
printf("*");
printf("\n");
}
}

C. 用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(" ");
}
}

(3)打菱形編程擴展閱讀:

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為循環條件

以上循環語句,當循環條件表達式為真則繼續循環,為假則跳出循環。

D. 如何用c語言顯示菱形

  • 1

    運用C語言程序輸出一個菱形:

    源代碼為:

    #include<stdio.h>

    void main()

    {

    int n=6;

    int i,a,b;

    //前4行.上半部分

    for( i=1;i<=n;i++)//控制行數

    {

    for( a=n-1;a>=i;a--)//列印空格

    {

    printf(" ");

    }

    for( b=1;b<=2*i-1;b++)//列印*

    {

    printf("*");

    }

    printf(" ");

    }

    //後3行,下半部分

    for( i=n-1;i>=1;i--)

    {

    for( a=i;a<=n-1;a++)

    {

    printf(" ");

    }

    for( b=1;b<=2*i-1;b++)

    {

    printf("*");

    }

    printf(" ");

    }

    }

E. c語言編程列印菱形,

#include<stdio.h>
#include<malloc.h>
#include<math.h>
intmain()
{
inti,j,n;
char**data=NULL;
scanf("%d",&n);
data=(char**)malloc(sizeof(char*)*(2*n-1));
if(data==NULL)
return1;
for(i=0;i<2*n-1;i++)
{
*(data+i)=(char*)malloc(sizeof(char)*(2*n-1));
}
for(i=0;i<2*n-1;i++)
{
for(j=0;j<2*n-1;j++)
{
if(i<=n-1)
{
if(i>=abs(j+1-n))
{
data[i][j]='*';
}
else
{
data[i][j]='';
}
}
else
{
if(2*n-1-i>abs(j+1-n))
{
data[i][j]='*';
}
else
{
data[i][j]='';
}
}
}
}
for(i=0;i<2*n-1;i++)
{
for(j=0;j<2*n-1;j++)
{
printf("%c",data[i][j]);
}
printf(" ");
}
for(i=0;i<2*n-1;i++)
{
free(*(data+i));
data[i]=NULL;
}
free(data);
data=NULL;
return0;

}

F. C語言列印菱形詳細講解

/*下面的程序是菱形列印的【終結者】,
改變下設置,就基本可以滿足所有菱形列印的題目。
程序主體 for 語句只有9行,簡單而強大
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

// 這個小函數用來輸出 repeatTimes 個字元 c
void printChar(char c,int repeatTimes)
{
int i;
for(i=0;i<repeatTimes;i++)
printf("%c",c);
}
/*
特別的函數,獲取當前要列印的下一個菱形圖案
height : 菱形的高
shapeVariantStep : 變化的步數
baseShape : 菱形的基本圖案
row : 當前列印的菱形圖案的行坐標。
col : 當前列印的菱形圖案的列坐標。
*/
char _buffer_[2]={0};
char* getShape(int height,int shapeVariantStep,char baseShape[],int row,int col)
{

int first = baseShape[0],last = first +(height-1)/2*shapeVariantStep;
if(shapeVariantStep==0 || strlen(baseShape)!=1)
return baseShape;
else
{
if( first>='0'&&first<='9'&&last<='9' ||
first>='a'&&first<='z'&&last<='z' ||
first>='A'&&first<='Z'&&last<='Z'
)
{
_buffer_[0] = first + ((height-2*abs(row)-1)/2 - abs(col))*shapeVariantStep;
_buffer_[1] = '\0';
return _buffer_;
}
else
{
return baseShape;
}
}
}

int main(int argc, char *argv[])
{
// 菱形的圖案
char shape[]="*";
// 菱形圖案間的空白圖案
char space=' ';
// 每個圖案之間的最小間隔(以一個字元為單位,不足用空白圖案填充)
int interval=5;
// 菱形的高(要求是奇數)
int height=7;
// 菱形是否空心(只有邊上的圖案)。是:1,否 0
int isHollow=0;
/* 特別的參數:設定菱形的圖案是變化。
只有指定 shape 為 :
"0","1",...,"9",
或者 "a","b",...,"z",
或者 "A","B",...,"Z" 其中之一,
並且要保證從指定圖形開始,後面至少還有連續的:
(height-1)/2*shapevariantStep
個可選的圖形,菱形的圖形才會是可變的。

*/
int shapeVariantStep = 0;

int i,j,k,n;
interval = interval < strlen(shape)?strlen(shape):interval;
for(i=-(height-1)/2;i<=(height-1)/2;i++)
{
// 用來輸出每行前的空白
printChar(space,abs(i)*interval);
// 這個 for(j) 語句用來輸出每行的菱形圖案
for(j=-(height-2*abs(i)-1)/2;j<=(height-2*abs(i)-1)/2;j++)
{
// 如果是非空心,輸出所有圖案;否則只輸出兩端的圖案。
if(!isHollow || (isHollow && (j==0 || j==height-2*abs(i)-1)))
{
n=printf("%s",getShape(height,shapeVariantStep,shape,i,j));
// 補齊為到寬度為 interval
printChar(space,interval-n);
}
// 對於空心的菱形,在本應該輸出圖案的地方,輸出空白。
else
{
printChar(space,interval);
}
}
// 這個 for(j) 語句用來輸出每行後的空白
printChar(space,abs(i)*interval);
printf("\n");
}
return 0;
}
/*
運行結果:
shape[]="*";
space[]=" ";
interval=5;
height=7;
isHollow=0;
shapevariantStep = 0
*
* * *
* * * * *
* * * * * * *
* * * * *
* * *
*

shape[]="**";
space[]=" ";
interval=5;
height=7;
isHollow=0;
shapevariantStep = 0
**
** ** **
** ** ** ** **
** ** ** ** ** ** **
** ** ** ** **
** ** **
**

shape[]="*";
space[]=" ";
interval=5;
height=7;
isHollow=0;
shapevariantStep = 0
...............*...................
..........*....*....*..............
.....*....*....*....*....*.........
*....*....*....*....*....*....*....
.....*....*....*....*....*.........
..........*....*....*..............
...............*...................

shape[]="*";
space[]=" ";
interval=0;
height=7;
isHollow=0;
shapevariantStep = 0
*
***
*****
*******
*****
***
*

shape[]="*";
space[]=" ";
interval=5;
height=11;
isHollow=0;
shapevariantStep = 0
*
* * *
* * * * *
* * * * * * *
* * * * * * * * *
* * * * * * * * * * *
* * * * * * * * *
* * * * * * *
* * * * *
* * *
*
shape[]="*";
space[]=" ";
interval=5;
height=7;
isHollow=1;
shapevariantStep = 0
*
* *
* *
* *
* *
* *
*

shape[]="A";
space[]=" ";
interval=5;
height=17;
isHollow=0;
shapevariantStep = 1
A
A B A
A B C B A
A B C D C B A
A B C D E D C B A
A B C D E F E D C B A
A B C D E F G F E D C B A
A B C D E F G H G F E D C B A
A B C D E F G H I H G F E D C B A
A B C D E F G H G F E D C B A
A B C D E F G F E D C B A
A B C D E F E D C B A
A B C D E D C B A
A B C D C B A
A B C B A
A B A
A
shape[]="a";
space[]=" ";
interval=5;
height=17;
isHollow=0;
shapevariantStep = 1
a
a b a
a b c b a
a b c d c b a
a b c d e d c b a
a b c d e f e d c b a
a b c d e f g f e d c b a
a b c d e f g h g f e d c b a
a b c d e f g h i h g f e d c b a
a b c d e f g h g f e d c b a
a b c d e f g f e d c b a
a b c d e f e d c b a
a b c d e d c b a
a b c d c b a
a b c b a
a b a
a

shape[]="1";
space[]=" ";
interval=5;
height=9;
isHollow=0;
shapevariantStep = 2
1
1 3 1
1 3 5 3 1
1 3 5 7 5 3 1
1 3 5 7 9 7 5 3 1
1 3 5 7 5 3 1
1 3 5 3 1
1 3 1
1

*/

G. c語言怎麼列印菱形

#include <stdio.h>
int main()
{
int i,j,m,n;
printf("請輸入菱形的行數:");
//判斷n是否符合正奇數的要求
while (scanf("%d", &n) != EOF && n % 2 == 1)
{ //對上半個菱形輸出
for (i = 1; i <= (n + 1) / 2; i++)
{
//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");
}
}
return 0;
}

H. C語言編程,用一個for循環列印菱形

# include<stdio.h>
# include<stdlib.h>
void main()
{
int i,j,a,b,n;
printf("please enter size");
scanf("%d",&n);
for(i=1;i<n;i++)
{
for(j=1;j<=n+i-1;j++)
if(j==n-i+1 ||j==n+i-1)
printf("*");
else
printf(" ");
printf("\n");
}
for(i=1;i<=2*n-1;i++)
printf("*");
printf("\n");
for(a=1;a<n;a++)
{
for(b=1;b<=2*n-a-1;b++)
if(b==n-(n-a-1)||b==2*n-a-1)
printf("*");
else
printf(" ");
printf("\n");}
}
主要考慮用for循環來解決問題,把菱形分成兩部分,先列印第一部分,然後列印第二部分。

I. 用c語言用*打出菱形

#include<stdio.h>

//列印n個空格函數

voidprintspace(intn)

{

intj;

for(j=1;j<=n;j++)

printf("");

}

//列印一個*函數

voidprintstar()

{

printf("*");

}

//換行函數

voidchangeline()

{

printf(" ");

}

voidmain()

{

inti=0;

printspace(4);//此三行代碼

printstar();//列印出

changeline();//第一個*

//此循環列印出第二行到第八行的*,每行有兩個(最後結果見截圖)

for(i=2;i<9;i++)

{

if(i<=5)//列印每行的第一個*之前先列印|5-i|(絕對值)個空格

printspace(5-i);

else

printspace(i-5);

printstar();//列印每行的第一個*

if(i<=5)//列印每行的第二個*之前先列印相應個數的空格

printspace(2*i-3);

else

printspace(17-2*i);

printstar();//列印每行的第二個*

changeline();//換行

}

printspace(4);//此三行代碼

printstar();//列印出

changeline();//最後一個*

}

運行結果:

熱點內容
我的世界怎麼擴容伺服器內存 發布:2024-05-05 17:19:54 瀏覽:46
java讀取文件字元 發布:2024-05-05 17:15:18 瀏覽:10
三星怎麼應用加密 發布:2024-05-05 17:13:18 瀏覽:151
cad字體在那個文件夾 發布:2024-05-05 17:08:20 瀏覽:329
什麼時候用編譯器 發布:2024-05-05 17:08:20 瀏覽:764
應急救援腳本 發布:2024-05-05 17:08:17 瀏覽:336
我的世界搭建無正版驗證伺服器 發布:2024-05-05 17:03:48 瀏覽:817
我的世界伺服器地址寶可夢 發布:2024-05-05 17:00:16 瀏覽:254
dede企業源碼 發布:2024-05-05 16:57:53 瀏覽:786
如何查看java版本 發布:2024-05-05 16:45:05 瀏覽:494