当前位置:首页 » 编程语言 » 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(" ");
}
热点内容
vb反编译修改 发布:2024-12-25 10:21:21 浏览:755
老外解压 发布:2024-12-25 10:08:29 浏览:404
外网访问内网服务 发布:2024-12-25 10:04:49 浏览:641
起点小说怎么上传封面 发布:2024-12-25 10:03:34 浏览:628
java一维数组定义 发布:2024-12-25 09:42:06 浏览:250
大积木编程 发布:2024-12-25 09:38:14 浏览:689
喋血复仇配置不够怎么办 发布:2024-12-25 09:35:59 浏览:368
提示没有配置emo服务器地址 发布:2024-12-25 09:35:21 浏览:316
python编辑excel 发布:2024-12-25 09:21:19 浏览:154
w7将电脑文件如何共享文件夹共享文件夹 发布:2024-12-25 09:12:41 浏览:190