关于打印空心菱形的小问题

厦门德仔
博客专家认证
2006-04-22 11:37:45
#include<math.h>
#include<stdio.h>
#include<conio.h>
int main()
{
int i,j,x;
//clrscr();
printf("Input how many rows:");
scanf("%d",&x);
x=x+1;
for(i=1;i<x;i++)
{
printf("\n");
for(j=1;j<x;j++)
{
if(i+j==(int)x/2+1||i+j==2*x-1||i+j==x+(int)(x-1)/2||fabs(i-j)==(int)(x-1)/2) printf("*");
else
printf(" ");
}
}
getch();
return 0;
}
// if(i+j==(int)x/2+1||i+j==2*x-1||i+j==x+(int)(x-1)/2||fabs(i-j)==(int)(x-1)/2) printf("*"); 看不懂
...全文
360 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
庄鱼 2006-04-23
  • 打赏
  • 举报
回复
i+j==(int)x/2 +1 =====> 左上边 /
i+j==2*x-1 =====> 右上边 \
i+j==x+(int)(x-1)/2===> 左下边 \
fabs(i-j) == (int)(x-1)/2 ===> 右下边 /
gengjindong 2006-04-23
  • 打赏
  • 举报
回复
#include<math.h>
#include<stdio.h>
#include<conio.h>文件
int main()主函数
{ 开始
int i,j,x; 定义变量i,j,k
//clrscr();
printf("Input how many rows:");输出:Input how many rows:
scanf("%d",&x); 要求输入X的值
x=x+1; 将X+1的值付给X
for(i=1;i<x;i++) 如果这一语句为真的则执行下一语句
{
printf("\n"); 通过上一语句,为真则执行这一语句:回车
for(j=1;j<x;j++) 这一语句为真同样执行下一语句
{
if(i+j==(int)x/2+1||i+j==2*x-1||i+j==x+(int)(x-1)/2||fabs(i-j)==(int)(x-1)/2) printf("*"); 输出:*
else 否则
printf(" ");无输出
}
}
getch();输入字符
return 0;将值反回
}
// if(i+j==(int)x/2+1||i+j==2*x-1||i+j==x+(int)(x-1)/2||fabs(i-j)==(int)(x-1)/2) printf("*");同上如果为真则输出*
gengjindong 2006-04-23
  • 打赏
  • 举报
回复
出:Input how many rows:
scanf("%d",&x); 要求输入X的值
x=x+1; 将X+1的值付给X
for(i=1;i<x;i++) 如果这一语句为真的则执行下一语句
{
printf("\n"); 通过上一语句,为真则执行这一语句:回车
for(j=1;j<x;j++) 这一语句为真同样执行下一语句
{
if(i+j==(int)x/2+1||i+j==2*x-1||i+j==x+(int)(x-1)/2||fabs(i-j)==(int)(x-1)/2) printf("*"); 输出:*
else 否则
printf(" ");无输出
}
}
getch();输入字符
return 0;将值反回
}
// if(i+j==(int)x/2+1||i+j==2*x-1||i+j==x+(int)(x-1)/2||fabs(i-j)==(int)(x-1)/2) printf("*");同上如果为真则输出*
linhong34 2006-04-22
  • 打赏
  • 举报
回复
up

70,023

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧