Lhino 2023-01-09 19:49 采纳率: 100%
浏览 72
已结题

c语言绘简单图形,图形居中

编写打印菱形和平行四边形两图形的程序。要求:①图形显示在屏幕中间。
②若每隔一行打印图形,如何修改?
③*与*之间加一空格如何外理。
主要是不明白第①个怎么做到,谢谢!

  • 写回答

1条回答 默认 最新

  • heart_6662 2023-01-09 20:04
    关注

    望采纳!!!点击回答右侧采纳即可!!
    如果要将图形居中显示,可以在屏幕的中间打印一个占位符,然后再打印图形。

    例如,若屏幕的宽度为80个字符,菱形的边长为5,则需要打印35个空格来将图形居中。

    代码如下:

    
    
    #include<stdio.h>
    
    int main()
    {
    int i,j;
    int n=5; //菱形的边长
    int m=(n+1)/2; //菱形的高度
    int k=(80-n)/2; //屏幕宽度为80,菱形宽度为n,需要打印k个空格居中
    for(i=1;i<=m;i++) //打印上半部分
    {
    for(j=1;j<=k;j++) //打印空格
    printf(" ");
    for(j=1;j<=n;j++) //每行打印n个字符
    {
    if(j==m-i+1 || j==m+i-1) //在菱形的边界处打印*
    printf("");
    else //其他位置打印空格
    printf(" ");
    }
    printf("\n"); //换行
    for(j=1;j<=80;j++) //打印一行空格
    printf(" ");
    printf("\n"); //换行
    }
    for(i=1;i<=m-1;i++) //打印下半部分
    {
    for(j=1;j<=k;j++) //打印空格
    printf(" ");
    for(j=1;j<=n;j++) //每行打印n个字符
    {
    if(j==i || j==n-i+1) //在菱形的边界处打印
    printf("*");
    else //其他位置打印空格
    printf(" ");
    }
    printf("\n"); //换行
    for(j=1;j<=80;j++) //打印一行空格
    printf(" ");
    printf("\n"); //换行
    }
    return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 1月25日
  • 已采纳回答 1月17日
  • 创建了问题 1月9日

悬赏问题

  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效