#include <stdio.h>
#include <stdlib.h>
#if 1
#define HMAX 50
int main()
{
int hOut=0,hIn=0,hDiff=0;
int x=0,y=0,z=0,g=0;
int t=0;
while(1){
printf("hOut,hIn:\n");
scanf("%d%d",&hOut,&hIn);
if(hIn<hOut<HMAX&&hIn>=0){
break;
}else{
printf("error\n");
}
}
hDiff=hOut-hIn;
for(int i=0;i<(hDiff);i++){ //hDiff
y=hOut-i-1;
x=2*i+1;
while(y--)
printf(" ");
while(x--)
printf("*");
printf("\n");
}
for(int i=0;i<hIn;i++){ //hIn
y=hOut-i-1-hDiff;
x=2*i+1;
t=i+1; //half in
z=hOut-y-t;
g=z;
while(y--)
printf(" ");
while(z--)
printf("*");
while(x--)
printf(" ");
while(g--)
printf("*");
printf("\n");
}
for(int i=0;i<(hIn-1);i++){ //-hIn
y=hOut-hDiff-(hIn-i)+1;
x=(hIn-i-1)*2-1;
t=i+1; //half in
z=hDiff;
g=hDiff;
while(y--){
printf(" ");
//printf("y=%d \n",y);
}
while(z--)
printf("*");
while(x--)
printf(" ");
while(g--)
printf("*");
printf("\n");
}
hDiff=hOut-hIn;
for(int i=0;i<(hDiff);i++){ //-hDiff
y=hOut-hDiff+(i); //print space out
x=(hDiff*2-2*(i))-1; //print space in
while(y--)
printf(" ");
while(x--)
printf("*");
printf("\n");
}
}
【一道C语言图形题,已知内层和外层菱形的高度,输出一空心菱形】
于 2024-02-04 14:32:06 首次发布
文章详细描述了一个C程序,通过用户输入的两个值hOut和hIn计算差值,并利用嵌套循环生成不同模式的星号输出。程序首先处理hOut大于hIn的情况,然后分别打印hIn、-hIn和-hDiff部分的星号布局。
摘要由CSDN通过智能技术生成