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

输出XXYXXYYXXYYYXXYYXXYXXX和Y键入!!!... 输出
X
XYX
XYYX
XYYYX
XYYX
XYX
X
X和Y键入!!!
展开
 我来答
fzpcmm
推荐于2017-12-15 · TA获得超过1083个赞
知道小有建树答主
回答量:171
采纳率:0%
帮助的人:238万
展开全部

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

#include<stdio.h>

 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的时候,将循环的边界再减一个,就可以了,不过图形是会变形,不会是菱形了。

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

百度网友6613d30
2011-11-14
知道答主
回答量:12
采纳率:0%
帮助的人:4.7万
展开全部
字母的输出位置是不是对齐的?把原题目说清楚点?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
鷹弈
2011-11-17 · TA获得超过5194个赞
知道大有可为答主
回答量:1257
采纳率:0%
帮助的人:623万
展开全部
#include <stdio.h>
#include <math.h>

#define ROW 3//这里的数值你可以改,自己试试就明白了

int main(void)
{
int i, j;
char X, Y;

printf("input X and Y:");
scanf("%c %c", &X, &Y);

for (i=-ROW; i<=ROW; i++)
{
for (j=0; j<=2*ROW-abs(i); j++)
{
if (abs(i) > j)
printf(" ");
else if ((abs(i) == j) || (2*ROW-abs(i) == j))
printf("%c", X);
else
printf("%c", Y);
}
printf("\n");
}

return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
隻礦一波流
2011-11-14 · TA获得超过365个赞
知道小有建树答主
回答量:183
采纳率:0%
帮助的人:139万
展开全部
题目是不是错了,你这个不是标准的菱形
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式