c语言问题:如何编写一个程序,输入一个正整数N,在屏幕上用‘*’打印以N为边长的正六边形。

来源:百度知道 编辑:UC知道 时间:2024/05/18 00:39:13
输入一个正整数N,在屏幕上用‘*’打印以N为边长的正六边形。
用c语言就行 没有特别要求

a ?
正六边形 你们老师学过数学么?
你可以告诉他 在数学上实现不了这个算法,因为会出现非整数无法在屏幕上实现。
支持楼上的说法,但有一点需要修正,控制台如果用星号的话应该大于45度 因为字符的纵横比不是正方形的,但是绝对到不了120度

我只能做一个类似六边形。不是很正的
#include "stdafx.h"
#include "math.h"
main()
{
int n,cont,cont2,conts;
scanf("%d",&n);
for(cont = 1;cont < 2*n ; cont++)
{
for(cont2=1;cont2<= abs(n-cont);cont2++)
putchar(' ');
for(cont2=1;cont2< 2*n-abs(n-cont);cont2++)
{
printf("* ");
}
putchar('\n');

}

getchar();getchar()
}

#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#define ERROR 0

int main(void)
{
int i=0,n=0,j=0,from=0,midi=0,midj=0,endj=0,endi=0;
char a[300][300];
printf("请正六边形的边长(像素单位):\n");
while((scanf("%d",&n))!=ERROR)
{
from=n;
midj=2*n;