用c语言打印*写各种平面的图形,如正方形,菱形等!

作者&投稿:离眉 (若有异议请与网页底部的电邮联系)
用C语言输出如下图形(一个正方形,一个菱形,菱形最好具有通用性)???~

#include
void diamond(int n);
void square(int n);
int main()
{
int i,j;
printf("输入菱形与正方形的边数,用空格分开:");
scanf("%d %d",&i,&j);
diamond(i);
square(j);
return 1;
}
void diamond(int n)
{
int i,j;
for(i=1;i<=n;i++)
{
for(j=n-i;j>0;j--)
{
printf(" ");
}
for(j=0;j<i;j++)
printf("* ");
printf("
");
}
for(i=1;i<n;i++)
{
for(j=n-i;j<n;j++)
printf(" ");
for(j=n-i;j>0;j--)
{
printf("* ");
}
printf("
");
}
}
void square(int n)
{
int i,j;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
printf("* ");
printf("
");
}
} 这个可以啊 哈哈 不懂的话加我 870662874

/*下面的程序是菱形打印的【终结者】,
改变下设置,就基本可以满足所有菱形打印的题目。
程序主体 for 语句只有9行,简单而强大
*/
#include
#include
#include

// 这个小函数用来输出 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("
");
}
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

*/

我这儿有一些关于图形输出的程序,前一段时间做的,都给你吧:

#include<stdio.h>//菱形
void main()
{
int a,b;
if(a<=4)
{for(a=1;a<=4;a++)
{for(b=1;b<=15-2*a;b++) printf(" ");
for(b=1;b<=2*a-1;b++) printf(" *");
printf("\n");
}
}
if(a>4&&a<=7)
{for(a=5;a<=7;a++)
{for(b=1;b<=2*a-1;b++) printf(" ");
for(b=1;b<=15-a*2;b++) printf(" *");
printf("\n");
}
}
}

#include<stdio.h>//三角形图案
void main()
{
int a=1,b;
for(;a<=5;a++)
{for(b=1;b<=20-a;b++) printf(" ");
for(b=1;b<=2*a-1;b++) printf("*");
printf("\n");
}
}

我已经给四个人回答过这类问题了...

这些都是考你循环语句啦.
注意看下这些图案的规律,你OK的


如何用c语言打印x型的字符图形?急求!!!
continue; } arr[++count] = ch++; } for(i = n; i >= 1; --i){ for(j = 0; j < n-i; ++j) printf(" "); if(n-i+1 == tot-n+i){ printf("%c\\n", arr[n-i+1])

c语言必背代码有哪些?
1、\/*输出9*9口诀。共9行9列,i控制行,j控制列。*\/ include "stdio.h"main(){int i,j,result;for (i=1;i<10;i++){ for(j=1;j<10;j++){ result=i*j;printf("%d*%d=%-3d",i,j,result);\/*-3d表示左对齐,占3位*\/ } printf("\\n");\/*每一行后换行*\/ } } 2、\/*...

用c语言写一个爱心的程序
首行答案:可以使用C语言编写一个打印爱心的程序。C语言是一种通用的编程语言,它具有丰富的语法和库函数,可以实现各种复杂的功能。其中,打印图形是C语言的一个常见应用之一。下面是一个使用C语言编写的打印爱心的示例程序:c include int main() { int i, j, n;float x, y;printf("Enter the ...

C语言打印1000以内的同构数,我自己写了一个:不知道错在哪里,求高手帮助...
\/*下面是百科写的,你的可以实现,简单修改下 include<stdio.h> main(){ long i,j,k;k=10;for (i=1;i<=1000;i++){ if (i==k) k*=10;j=i*i;if(j%k==i) printf("%ld\\t%ld\\n",i,j);} } \/ include<stdio.h> include<math.h> void main(){ int x,y,flag,i;for(...

写一个c语言程序打印如下图案: * *** *** *** *** *** *
int a=7;int b=-6;for(i=0,i<6,i++){ int c=a+b;for(j=0,j<c,j++){ 打印一个 } 打印一个空格 b+=2;} 没运行过,不知道行不行

用C语言写一个6行的杨辉三角(要用到数组)
include<stdio.h>int main(){int i,j,a[6][6]={1}; for(i=1;i<6;i++) for(j=0;j<=i;j++) a[i][j]=j==0?1:a[i-1][j]+a[i-1][j-1]; for(i=0;i<6;i++) {printf("%*s",3*(5-i),""); for(j=0;j<=i;j++) printf("%6d",a[i][...

c语言 利用ascii表输出十个数字符号 26个大写字母符号 笑脸符号和扑 ...
include<stdio.h>main(){char s;int i;s='0';\/\/字符赋值ASCII的数字0 for(i=0;i<10;i++)\/\/打印10个数字 printf("%c",s+i);printf("\\n");\/\/换行 s='A';\/\/字符赋值ASCII的字母A for(i=0;i<26;i++)\/\/打印26个字母 printf("%c",s+i);printf("\\n");\/\/换行 pr...

C语言 使用for循环 】打印出大写字母的ASC码对照表 求高手
include "stdio.h"int main(){ char a;for(a='A';a<='Z';a++)printf("%c:%d\\t",a,a);printf("\\n");}

...打印其大写字母及其前导字母和后续字母的C语言程序怎么编写_百度...
include int main(){ char ch;scanf("%c",&ch);\/\/如果是小写字母 if(ch >= 'a' && ch <= 'z'){ printf("%c\\n",ch-('a'-'a'));} return 0;}同一字母的小写比大写大的值为('a'-'a'),所以减掉这个差值就行了。

c语言打印*号
加pause就可以停住屏幕 include "stdio.h"include<cstdlib> int main(){ int i,a;for(i=1;i<5;i++){ for(a=9;a-i>0;a--);{ printf(" ");} for(a=1;a<=2*i-1;a++){ printf("*");} printf("\\n");} system("pause") ;} ...

定襄县19776909632: 编写C语言程序 打印图形 -
再泉宁圣: 要加空格 在加个循环就是了 #include void main() {int i,j,k;for(i=1;i<=4;i++){for(k=i;k<=3;k++)printf(" "); for(j=0;j<2*i-1;j++)printf("*"); printf("\n");} }

定襄县19776909632: 用C语言编写输出如下图形的程序 -
再泉宁圣: #include "stdio.h"/*#include "math.h"*//*#define N 80*/ void main() {int i,j,n; char a[][]; printf("enter a array:\n"); scanf("a[%d][]",n); printf("\n"); for(j=1;;j++) for(i=1;i<=n;i++) { if(i%2!==0) a[i][j]= '*'; else a[i][j]='#';if(i==n) n-=1; } for(i=80;i>=1;1--) for(j=1;;j++) printf("%c",a[i][j]); }

定襄县19776909632: 用C语言打印如下图形 ********** ********* ******** ******* ****** ***** **** *** ** * -
再泉宁圣: #include<stdio.h>#define n 10 int main() { int i,j; for(i=n-1;i>=0;i--) { for(j=1;j<=n-i;j++) printf(" "); for(j=1;j<=2*i+1;j++) printf("*"); printf("\n"); } }

定襄县19776909632: 用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(" "...

定襄县19776909632: 用C语言编写程序,打印出如下图案. -
再泉宁圣: #includeint main() { int i,j,h,k; h=7; 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 { for(k=0;k { printf(" "); } printf("*"); for(i=0;i { printf(" "); } if(j...

定襄县19776909632: 用C语言 如何打印 如下图形 ********* ******* ***** *** * -
再泉宁圣: #include<stdio.h> int main() { const int n=5; int i,j; for(i=0;i<n;i++) { for(j=(n-i)*2-1;j>0;j--) { printf("*"); } printf(" "); } return 0; }

定襄县19776909632: 用c语言编写程序输出图形 -
再泉宁圣: int main() {int q,w,e=1,r,c=0,k=1;char o='*',p=' ';for(r=0;r<5;r++) /*循环4行输出*/{for(q=4;q>0;q--)printf("%c",p);for(w=0;w printf("%c",o);e++;printf("\n");}for(q=0;q<10;q++) //输出整行*printf("%c",o);printf("\n");for(r=0;r<5...

定襄县19776909632: C语言 编写程序打印图形 -
再泉宁圣: 你要什么图 是三角 还是菱形 我给你 菱形的#include <stdio.h> void main() { int n,m,i,j; printf("输入n:"); scanf("%d",&n); for(i=0,m=0;i<2*n-1;i++,(i<n)?m++:m--) { for(j=0;j<n-m-1;j++) { printf(" "); } for(j=0;j<2*m+1;j++) { printf("$"); } printf("\n"); } }

定襄县19776909632: 这个图像怎么打?用C语言 -
再泉宁圣: 代码如下,执行后输入3 即可打印形如上图中的图形:#include <stdio.h> void print(int n) { int i, j; for (i = 1; i <= n; i++) { for (j = 1; j <= n - i; j++) { printf(" "); } for (j = n - i + 1; j<n + i; j++) { printf("*"); } printf("\n"); } for (i = n - 1; i >= 1; i--) { for (j = 1...

定襄县19776909632: 如何用c语言打印出由*组成的菱形 -
再泉宁圣: #include<conio.h>#include<stdio.h> int main() { int i,j,k,m; printf("please input n: \n"); scanf("%d",&m); 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;...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网