带文字的空心六边形。
/*空心六角形,中间有文字,请用可显中文DOS或编译器调试。
作得不好,还请各位多多包涵,并指点一二,谢谢。
*/
#include<stdio.h>
#include<stdlib.h>
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~六边形函数*/
void tuxing(int n)
{
int i,j,k;
/*----------------------------------------上部*/
for(i=0;i<n;i++)
{
for(j=0;j<n-i;j++)
printf(" ");
if(i==0)
{
for(k=0;k<n+1;k++)
printf(" #");
puts(" ");
continue;
}
printf(" #");
for(j=0;j<n+i*2-1;j++)
printf(" ");
printf(" #");
puts(" ");
}
/*-------------------------------------中部*/
for(i=0;i<n;i++)
{
printf(" #");
for(j=0;j<3*n-1;j++)
{
if(i%2==0&&3*n-1>7)
{
printf(" ");
printf("学C进行中");
k=0;
while(k<n*3-8)
{
printf(" ");
k++;
}
break;
}
printf(" ");
}
printf(" #");
puts(" ");
}
/*-----------------------------------下部*/
for(i=n;i>=0;i--)
{
for(j=n;j>i;j--)
{
printf(" ");
}
printf(" #");
if(i==0)
{
for(k=0;k<n;k++)
printf(" #");
break;
}
for(j=n+i*2-1;j>0;j--)
printf(" ");
printf(" #");
puts(" ");
}
}
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 输入函数*/
int shuru()
{
int x;
printf("请输入六边形的边长,请控制在2~10之间:\n");
do
{
scanf(" %d",&x);
if(x<2||x>10)
printf("您的输入超出范围,请重新输入:\n");
}
while(x<2||x>10);
return x;
}
/*#########################################################主函数*/
int main(void)
{
int n;
n=shuru();
system("cls");
tuxing(n-1);
getch();
}