當前位置:首頁 » 編程語言 » c語言列印菱形

c語言列印菱形

發布時間: 2022-01-08 13:51:03

c語言 :列印數字菱形

//你這個寫得太麻煩了,也沒有注釋說一下各個變數做什麼用,看的頭疼。
//寫個簡單的吧

#include <stdio.h>
#include <math.h>

int main()
{
int n=4;
int i, j;
for(i=0;i<n*2;++i)
{
for(j=0;j<n*2;++j)
putchar(abs(i-(n-1))+abs(j-(n-1))+1>n ? ' ' : '0'+abs(i-(n-1))+abs(j-(n-1))+1);
printf("\n");
}
}

② c語言輸出菱形

java語言輸出菱形:

publicstaticvoidmain(String[]args){
introw=11;//設置列印的行數,11也就是菱形對角線的長。
for(inti=0;i<row;i++){
for(intj=0;j<row;j++){
//左上,右上,左下,右下四個角列印空格
//可以一個判斷語句寫出,四個判斷分別對應四個角的位置
if(i<row/2&&(j<row/2-i||j>row/2+i)||
i>row/2&&(j<i-row/2||j>row-i+row/2-1)){
//滿足條件列印空格
System.out.print("");
}else{
//不滿足條件列印*
System.out.print("*");
}
}
//一次循環結束,換行
System.out.println();
}
System.out.println("---------------------------------");

//下面列印花紋。很多菱形循環排列
//設置橫排重復次數15,豎排重復次數12。共15*12個菱形,每一個菱形是11的對角線長
intwCount=15;
inthCount=12;
intwRows=row*wCount;
inthRows=row*hCount;
for(inti=0;i<hRows;i++){
inttemp1=i;
i=i%row;
for(intj=0;j<wRows;j++){
inttemp2=j;
j=j%row;
if(i<row/2&&(j<row/2-i||j>row/2+i)||
i>row/2&&(j<i-row/2||j>=row+row/2-i)){
System.out.print("");
}else{
System.out.print("*");
}
j=temp2;
}
i=temp1;
System.out.println();
}

}

③ 用C語言列印菱形圖案的方法是什麼

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

  2. #includevoid main(){printf(" * ");printf(" *** ");printf(" ***** ");printf(" *** ");printf(" * ");} 這是最簡單的。下面一個稍微復雜一點。#includevoid main(){int i=0,j=0,k=0;for(i=0;i{for(j=6-i;j>=0;j--){putchar(' ')...

  3. 手機黨輸入#include"stdio.h"main(){printf(" * ");printf(" * * ");printf(" * * ");printf(" * * ");printf(" * ");}

④ 如何用C語言列印菱形

#include
void
main()
{
int
n,m,i,j,s1,s2,s3,s4;
printf("請輸入外菱形與內菱形高度\n");
printf("n=");
scanf("%d",&n);
printf("m=");
scanf("%d",&m);
if(((n%2==0||m%2==0)&&n!=0&&m!=0)||m>=n||n<=0||m<0)
return;
if(n!=0&&m==0)
{m=n/2+1;
for(i=1;i<=m;i++)
{
for(j=1;j<=m-i;j++)
printf("
");
for(j=1;j<=2*i-1;j++)
printf("*");
printf("\n");
}
m--;
for(i=1;i<=m;i++)
{
for(j=1;j<=i;j++)
printf("
");
for(j=1;j<=2*(m-i)+1;j++)
printf("*");
printf("\n");
}
}
else
{s1=(n-m)/2;
s2=(m+1)/2;
s3=(m-1)/2;
for(i=1;i<=s1;i++)
{
for(j=1;j<=(n+1)/2-i;j++)
printf("
");
for(j=1;j<=i*2-1;j++)
printf("*");
printf("\n");
}
for(i=1;i<=s2;i++)
{
for(j=1;j<=s2-i;j++)
printf("
");
for(j=1;j<=s1;j++)
printf("*");
for(j=1;j<=i*2-1;j++)
printf("
");
for(j=1;j<=s1;j++)
printf("*");
printf("\n");
}
for(i=1;i<=s3;i++)
{
for(j=1;j<=i;j++)
printf("
");
for(j=1;j<=s1;j++)
printf("*");
for(j=1;j<=(s3-i)*2+1;j++)
printf("
");
for(j=1;j<=s1;j++)
printf("*");
printf("\n");
}
for(i=1;i<=s1;i++)
{
for(j=1;j<=n/2-s1+i;j++)
printf("
");
for(j=1;j<=(s1-i)*2+1;j++)
printf("*");
printf("\n");
}
}
getch();
}

⑤ 用C語言如何用「*」列印出一個菱形

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

for(k=0;k<=2*j-2;k++)
{
printf(" ");
}
if(j!=0) printf("*");
printf("\n");
}
for(j=0;j<h/2;j++)
{
for(k=0;k<j+2;k++)
{
printf(" ");
}

printf("*");
for(i=0;i<h-2*j-4;i++)
{
printf(" ");
}
if(j!=h/2-1) printf("*");
putchar(10);
}
putchar(10);
return 0;
}
//輸入要是單數,雙數是打不出菱形的

⑥ 用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

*/

⑦ C語言編程列印菱形的數字圖表

#include "stdio.h"

int main() {

int n,i,j;

while(scanf("%d",&n)) {

for(i=1; i<=n; i++) {

for(j=1; j<=n-i; j++) //畫空格

printf(" ");

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

printf("%d",j);//輸出從1到n

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

printf("%d",j);//輸出從n-1到1

printf(" ");

}

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

for(j=1; j<=n-i; j++) //畫空格

printf(" ");

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

printf("%d",j);//輸出從1到n

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

printf("%d",j);//輸出從n-1到1

printf(" ");

}

}

return 0;

}

(7)c語言列印菱形擴展閱讀:

書寫規則

1、一個說明或一個語句佔一行。

2、用{} 括起來的部分,通常表示了程序的某一層次結構。{}一般與該結構語句的第一個字母對齊,並單獨佔一行。

3、低一層次的語句或說明可比高一層次的語句或說明縮進若干格後書寫。以便看起來更加清晰,增加程序的可讀性。在編程時應力求遵循這些規則,以養成良好的編程風格。

網路-c語言

⑧ 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

*/

⑨ c語言列印字元菱形

#include<stdio.h>
#include<math.h>
intmain(void)
{
intn,i,j,cnt;
while(scanf("%d",&n)!=EOF)
{
cnt=0;
for(i=-n;i<n+1;++i)
{
for(j=-n;j<n+1;++j)
{
putchar(abs(j)<=n-abs(i)?'A'+cnt++:'');
}
putchar(' ');
}
}
return0;
}

⑩ 用c語言 for循環列印菱形 看圖

看規律:

-2 1 = 5-【(-1)*(-2)*2】

-1 3 =5-【(-1)*(-1)*2】

0 5 =5-【(0)*2】

1 3 =5-【(1)*2 】

2 1 =5-【(2)*2】

所以,內層循環為:

for(i=-2;i<=2;i++)
{
for(j=0;j<5-2*abs(i);j++)//abs函數是得到一個數的絕對值
printf("*");
printf(" ");
}
熱點內容
微信安裝安卓707什麼意思 發布:2024-12-25 21:38:15 瀏覽:879
演示文稿如何取消密碼 發布:2024-12-25 21:21:18 瀏覽:96
最近上傳視頻 發布:2024-12-25 21:05:39 瀏覽:393
php招聘源碼 發布:2024-12-25 21:05:38 瀏覽:988
c語言輸入數組賦值 發布:2024-12-25 21:01:43 瀏覽:652
22款賓士e買哪個配置 發布:2024-12-25 20:54:08 瀏覽:737
金鏟鏟之戰怎麼看之前的伺服器 發布:2024-12-25 20:52:36 瀏覽:448
unix環境高級編程英文版 發布:2024-12-25 20:50:35 瀏覽:291
我的世界電腦版伺服器如何改實驗模式 發布:2024-12-25 20:41:57 瀏覽:129
資料庫刪過程 發布:2024-12-25 20:39:38 瀏覽:447