数字控制菱形输出问题!

来源:百度知道 编辑:UC知道 时间:2024/05/14 20:02:12
输入两个数字,分别作为菱形边长的*个数,要求第一个数大于第二个数,输出的图形为两个空心菱形,其中大菱形在外围,小菱形在大菱形的中心内部。要求两菱形为空心菱形,小菱形必须在大菱形正中间位置。
例如,输入4和2,输出以下图形
*
* *
* * *
* * * *
* * *
* *
*
C语言编写
上面的图形有错,不知怎么变了样了,大家就不要参考了,意思应该很明白了吧
拜托大家看清题目再说,不是想的那么简单的,4楼的编译都没通过,数组长度是不能用变量的吧???

以菱形的中心为原点,边长为n的菱形的所有的星号都在以下直线上 
x+y=n-1; x-y=n-1; x+y=-(n-1);x-y=-(n-1); 
把菱形存在一个二维字符数组中,先把所有元素置为空格,然后把菱形的边所在的元素置为*。对于每一个菱形,在菱形的范围内,分4个象限处理:从第1象限开始x--,y++、到第2象限x--,y--、到第3象限x++,y--、到第4象限x++,y++。 

所以很简单了 

#include "conio.h" 
#include "stdio.h" 
#include "stdlib.h" 

#define maxlen 40  /* 暂定最大边长为40,菱形宽度为79字符,命令行方式一行能显示的最大字符数为80 */

void main() 

   int i,j,state;   /* state 为象限值 0-3 代表1-4象限 */
   int outer,inner; /* 内外菱形的边长 */
   char diamond[2*maxlen-1][2*maxlen-1]; /* 存放菱形的字符数组 */
   scanf("%d %d",&outer,&inner); /* 读入变长 */
   if(outer<inner)    &nb