如何用c语言编写程序,打印一个空心菱形,用循环写
#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;
}
5'7都行