- UID
- 58584
注册时间2009-1-25
阅读权限30
最后登录1970-1-1
龙战于野
TA的每日心情 | 慵懒 2015-10-9 11:25 |
---|
签到天数: 1 天 [LV.1]初来乍到
|
本帖最后由 老万 于 2010-11-13 08:53 编辑
由于菱形两条对角线相互垂直,故根据对角线的长度,设计如下程序:
main()
{
int i,a,b,j; //i,j为循环变量,a为菱形纵对角线长度,b为菱形横对角线长度
printf("Input two length(>10):");//输入菱形的两条对角线长度,长度大于10的话能看出效果
scanf("%d%d",&a,&b);
if((a%2)&&(b%2)) //判断长度是否是偶数
{
for(i=0;i<(b+1)/2;i++)
{
printf(" ");
}
printf("*\n"); //打印最上边的*号
for(i=1;i<(a+1)/2;i++) //打印菱形上部分
{
for(j=0;j<(int)((b+1)/2-i*b/a);j++)
{
printf(" ");
}
printf("*"); //打印菱形上部分左边的*
for(j=0;j<(int)(2*i*b/a);j++)
{
printf(" ");
}
printf("*\n"); //打印菱形上部分右边的*
}
for(i=1;i<(a+1)/2;i++) //打印菱形下部分
{
for(j=0;j<(int)(i*b/a);j++)
{
printf(" ");
}
printf("*"); //打印菱形下部分左边的*
for(j=0;j<(int)(b-2*i*b/a);j++)
{
printf(" ");
}
printf("*\n"); //打印菱形下部分左边的*
}
for(i=0;i<(b+1)/2;i++)
{
printf(" ");
}
printf("*\n"); //打印最下边的*号
}
else
{
for(i=0;i<b/2;i++)
{
printf(" ");
}
printf("*\n");
for(i=1;i<a/2;i++)
{
for(j=0;j<(int)(b/2-i*b/a);j++)
{
printf(" ");
}
printf("*");
for(j=0;j<(int)(2*i*b/a);j++)
{
printf(" ");
}
printf("*\n");
}
for(i=1;i<a/2;i++)
{
for(j=0;j<(int)(i*b/a);j++)
{
printf(" ");
}
printf("*");
for(j=0;j<(int)(b-2*i*b/a);j++)
{
printf(" ");
}
printf("*\n");
}
for(i=0;i<b/2;i++)
{
printf(" ");
}
printf("*\n");
}
} |
|