如何用c语言编写程序,打印一个空心菱形,用循环写

 我来答
497005046
推荐于2017-09-23 · 超过22用户采纳过TA的回答
知道答主
回答量:131
采纳率:100%
帮助的人:41.3万
展开全部

#include <stdio.h>

int main(void){
 int i,j,k;
 //上半空心菱形 
 for(i=1;i<=10;i++){  //控制行数 10行 
  for(k=10;k>i;k--){  //第一行 9空格1*   i=2  8空格 2* 
   printf("  ");   
  }
  //当i=1时 由第25行代码输出* 
  if(i == 1){}
  else{
      printf(" *");
  }
  //空心空格个数打印 0 2 4 6   16个 
  for(j=1;j<2*i-2;j++){
   printf("  ");
  }  
  printf(" *");
  printf("\n");  
 }
 //下空心菱形 
 for(i=1;i<=9;i++){  //去掉最长行 只有9行 
     //空格增多 1 2 3...9 
  for(k=1;k<=i;k++){
         printf("  ");   
     }
     //最后一行*号由代码43行执行 
     if(i == 9){}
     else{
            printf(" *");
     }
     //空心空格个数打印 15 13 ....1    注意空格是15开始 1结束 
  for(j=1;j<=17-2*i;j++){  //i=9时候 打印0个空格 
   printf("  ");
  }  
  printf(" *"); //打印每行后出现的* 
  printf("\n"); //换行 
 }
 }

追问
厉害,用的linux啊(敢问您用哪个版本?)。为什么我想不到呢?我虽初学,但循环的知识学完了,全部了解您写的代码,却自己没那水平。求教学习方法或技巧
匿名用户
2014-03-17
展开全部

1楼的你都看了,为什么不采纳?如果你不要linux版的,那我写个VC++6.0的,望采纳:

#include <stdio.h>

#include <math.h>

int main(void)

{

int n,i,j;

printf("请输入空心棱形的边长n(n>=2整数):\n");

for(scanf("%d",&n),i=-n+1;i<n;i++)

{

j=2*abs(i);

while(j--) printf(" ");

printf("*");

j=4*(n-abs(i))-5;

while(j-->0) printf(" ");

if(n-1!=abs(i)) printf("*");

printf("\n");

}

return 0;

}

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
蓉雪球
2014-03-17 · TA获得超过8998个赞
知道大有可为答主
回答量:2846
采纳率:79%
帮助的人:707万
展开全部
几行?
追问
5'7都行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式