c语言程序设计输出菱形图!!!!

c语言程序设计输出菱形图!!!!,第1张

此题解法,我将这个菱形放在了一个二维数组中,因为用二维数组可以界定X的边界,比较方便一点。 循环输出的时候,特别注意循环跳出的条件,你画个二维数组,体会一下里面的数学关系,多上机改改代码,呵呵。要特别注意 q 的用途哦。

#include<stdioh>

void main()

{

#define N 7    //定义二维数组的行和列

int i,j;

char a[N][N];

int q=N/2;   //找到数组的中间列

char t,p;   // 定义输出字符,t代表X,p代表Y

printf("qing shu ru X,Y:\n");

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("\n");

}

}

我这里输出的是标准的菱形,中间的Y的个数和你给的不一样,如果你想要你的那种结果,只需要在输出Y的时候,将循环的边界再减一个,就可以了,不过图形是会变形,不会是菱形了。

上机运行的时候,把这些汉字清理了吧,要不可能编译出问题,好运~

#include"stdioh"

int main(void){

 int i,j,k;

 for(i=0;i<=3;i++) {   //   循环4次,打出前4行

  for(j=0;j<=2-i;j++)//设定每行前面的空格,每行都是2-i个

   printf(" "); 

  for(k=0;k<=2i;k++)//循环打出2i-1个号,

   printf(""); 

  printf("\n"); //打完一行后换行

 }

 for(i=0;i<=2;i++) {//循环3次,打出后3行

  for(j=0;j<=i;j++)//设定每行前面的空格,每行都是i个

   printf(" "); 

  for(k=0;k<=4-2i;k++)//循环打出2(2-i)个号

   printf(""); 

  printf("\n"); //打完一行后换行

 } 

 return 0;

按照你的要求编写的输出数字菱形的Python程序如下(abs是求绝对值的函数)

N=9

for i in range(1,N2):

for j in range(1,abs(N-i)+1):

print(' ',end='')

for j in range(N-abs(N-i),1,-1):

print(j,end='')

for j in range(1,N-abs(N-i)+1):

print(j,end='')

print()

源代码(注意源代码的缩进)

以上就是关于c语言程序设计输出菱形图!!!!全部的内容,包括:c语言程序设计输出菱形图!!!!、c语言输出菱形星号程序详解、请教如图所示Python输出数字菱形的代码等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10628182.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-10
下一篇 2023-05-10

发表评论

登录后才能评论

评论列表(0条)

保存