当前位置:首页 » 编程语言 » c语言怎么写五角星
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言怎么写五角星

发布时间: 2022-05-07 13:04:33

㈠ 用c语言怎么打印五角星

1、获得五个外顶点的坐标:

intm_xw[5];//5个X外顶点坐标
intm_yw[5];//5个Y外顶点坐标
voidCMyTestView::getCoord()
{
intc=360/5;//角度
intr=150;
for(inti=0;i<5;i++)
{
m_xw[i]=(int)(cos(i*c*PI/30-PI/2)*(r)+r);
m_yw[i]=(int)(sin(i*c*PI/30-PI/2)*(r)+r);
}
}


2、画线段:
在构造函数中调用求顶点坐标的函数求顶点坐标:
this->getCoord();
然后直接在绘图函数中添加如下代码:

voidCMyTestView::OnDraw(CDC*pDC)
{
CMyTestDoc*pDoc=GetDocument();
ASSERT_VALID(pDoc);
//TODO:adddrawcodefornativedatahere
pDC->MoveTo(m_xw[4],m_yw[4]);
pDC->LineTo(m_xw[1],m_yw[1]);
pDC->LineTo(m_xw[3],m_yw[3]);
pDC->LineTo(m_xw[0],m_yw[0]);
pDC->LineTo(m_xw[2],m_yw[2]);
pDC->LineTo(m_xw[4],m_yw[4]);
}

㈡ c语言中怎样用最简短的语句做出实心五角星!

最简单的话,用强大的搜狗输入法吧,输入法里可以找到。
#include<stdio.h>
int main(void)
{
printf("★ \n");
return 0;
}
要是正规点的就用他们对应的ASCII码。

㈢ 急!请问,如何用C语言画一个五角星(用*组成)

我自己弄出来了,不好意思,我自己来回答了。
程序如下:
#include<stdio.h>
void
main()
{
int
i1,j1,k1,i2,j2,k2,i3,j3,k3,i4,j4,k4,m4,n4;
printf("Let's
draw
a
five
pointed
star
below:\n");
for(i1=1;i1<6;i1++)
/*这是五角星的上面一个角*/
{
for(j1=1;j1<19-i1;j1++)
/*这是空格*/
printf("
");
for(k1=1;k1<=2*i1-1;k1++)
/*这是“*”*/
printf("*");
printf("\n");
}
for(i2=1;i2<5;i2++)
/*这是五角星的中间两个角*/
{
for(j2=1;j2<3*i2-3;j2++)
printf("
");
for(k2=1;k2<=42-6*i2;k2++)
printf("*");
printf("\n");
}
for(i3=1;i3<3;i3++)
/*这是中间与下部相接的部分*/
{
for(j3=1;j3<12-i3;j3++)
printf("
");
for(k3=1;k3<=12+2*i3;k3++)
printf("*");
printf("\n");
}
for(i4=1;i4<5;i4++)
/*这是五角星的下面两个角*/
{
for(j4=1;j4<10-i4;j4++)
printf("
");
for(k4=1;k4<=10-2*i4;k4++)
printf("*");
for(m4=1;m4<6*i4-3;m4++)
printf("
");
for(n4=1;n4<=10-2*i4;n4++)
printf("*");
printf("\n");
}
printf("Congratulations!\nWe've
successfully
drawn
a
beautiful
pentagon,haven't
we?\n(*^_^*)\n");

㈣ 用C语言怎样写五角星沿正弦曲线移动,个人基本不会C语言,求高手解答.

编译环境vc6.0,文件扩展名是cpp。

#include <Windows.h>
#include <tchar.h>
#include <math.h>

long WINAPI WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
UINT SCREEN_WIDTH = 1000;
UINT SCREEN_HEIGHT = 600;

int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
TCHAR className[] = _T("serenesunny");
TCHAR windowName[] = _T("五角星");
WNDCLASS wndcls;
wndcls.cbClsExtra = 0;
wndcls.cbWndExtra = 0;
wndcls.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
wndcls.hCursor = LoadCursor(hInstance, IDC_ARROW);
wndcls.hIcon = LoadIcon(hInstance, IDI_APPLICATION);
wndcls.hInstance = hInstance;
wndcls.lpfnWndProc = WndProc;
wndcls.lpszClassName = className;
wndcls.lpszMenuName = 0;
wndcls.style = CS_HREDRAW | CS_VREDRAW;

RegisterClass(&wndcls);

HWND hWnd = CreateWindow(className, windowName, WS_OVERLAPPEDWINDOW, 0,
0, SCREEN_WIDTH, SCREEN_HEIGHT, 0, 0, hInstance, 0);

ShowWindow(hWnd, SW_SHOWNORMAL);
UpdateWindow(hWnd);

MSG msg;
while (GetMessage(&msg, hWnd, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}

return msg.wParam;
}

#define Pi 3.1415926
double n = sin(3 * Pi / (double)10) / sin(Pi / (double)10); // 半径之比
int ti = 0; // 旋转变量
UINT index = 0;
UINT r[] = { (UINT)(n * 20), 20 };
float theta[] = {(float)(- Pi / 2), (float)(Pi / (float)5 - Pi / 2)};
POINT points[10];
UINT centerx = 100;
UINT centery = SCREEN_HEIGHT / 2;

long WINAPI WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
HDC hdc;
PAINTSTRUCT ps;
HBRUSH hBrush;
// HPEN hPen;
int i;
int index;
switch(message)
{
case WM_CREATE:

case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
hBrush = CreateSolidBrush(0x00ffff);
SelectObject(hdc, hBrush);
centerx = 100 + ti;
centery = SCREEN_HEIGHT / 2 - (long)(200 * sin(Pi * ti / (double)300));
for (index = 0; index < 5; index++)
{
for (i = 0; i < 2; i++)
{
points[index * 2 + i].x = (long)(centerx + r[i] * cos(theta[i] + index * 2 * Pi / 5));
points[index * 2 + i].y = (long)(centery + r[i] * sin(theta[i] + index * 2 * Pi / 5));
}
}
Polygon(hdc, points, 10); // 把五角星看成一个10边形,用多边形画法去画
DeleteObject(hBrush);
ti += 2;
ti = ti % 600;
Sleep(20);
InvalidateRect(hWnd,NULL,1); //重绘窗口区域.
EndPaint(hWnd, &ps);
break;
case WM_CLOSE:
DestroyWindow(hWnd);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;
}

如果出现错误:
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main

解决方法:
控制台项目要使用windows子系统, 而不是console, 设置:
[Project] --> [Settings] --> 选择"Link"属性页,
在Project Options中将/subsystem:console改成/subsystem:windows.

㈤ 如何用c语言做一个用*组成的实心五角星

1. 在C**** View.cpp中加入:#include"math.h"
2. 在C******View类中添加:
int g; //表示角度
CPoint v[10], prev_v[10]; //五角星的十个点
CDC *pDC; //设备上下文指针
CBrush br,*p_br; //画刷对象和画刷指针
CPen pen,*p_pen; //画笔对象和画比指针

3. 在构造函数CMyView()添加:
g=0; 角度从0开始
float rad;
int i,t; 将五角星的十个点存入V数组中
for(i=0;i<10;i++)
{rad=float((i*36+18)*3.14/180);
t=i&1?50:25;
v[i].x=int(t*cos(rad));
v[i].y=int(t*sin(rad));
} //红,绿,蓝
br.CreateSolidBrush(RGB(255,255,0));//创建一个实心画刷
pen.CreatePen(PS_SOLID,2,RGB(0,120,255));设置画笔
// 初始化画刷和画笔:PS_SOLID:实线样式,2:线宽
4. 在析构造函数~CMyView()中添加:
br.DeleteObject();
pen.DeleteObject();释放画笔和画刷

5. 在OnDraw()函数中加入:
KillTimer(1);//禁止定时器消息
CRect rc; //窗口对象
GetClientRect(&rc); //得到窗口的大小
int x,y,j,x1,y1;
float rad1; // 坐标转换
x=rc.right/2;
y=rc.bottom/2; //得到窗口的中心坐标
for(j=0;j<359;j+=2)
{rad1=float(j*3.14/180);
x1=int(100*cos(rad1))+x; //画圆
y1=int(100*sin(rad1))+y;
pDC->SetPixel(x1,y1,RGB(0,0,0)); //画园上的点

2010-6-4 20:00 回复

圈中打转
0位粉丝
2楼

}
pDC->SetROP2(R2_NOTXORPEN); //设置绘图模式
p_br=pDC->SelectObject(&br); //选择画笔等GDI绘图对象
memcpy(prev_v,v,10*sizeof(CPoint));//将五角星的十个点送prev_v数组
pDC->Polygon(prev_v,10); //画五角星
pDC->SelectObject(p_br); //设置绘图对象
SetTimer(1,50,NULL); //启动定时器
6. 在定时器响应函数OnTimer(UINT nIDEvent) 中添加:
7. g+=5; //角度加5
CRect rc;
GetClientRect(&rc);
int x,y,j;
float rad1; //坐标转换
rad1=float(g*3.14/180);
x=(rc.right/2);
y=rc.bottom/2;
CPoint a[10]; //定义一个临时的数组存放角度变化后的五角星的十个点
for(j=0;j<10;j++)
{a[j].x=v[j].x+x+int(100*cos(rad1));
a[j].y=v[j].y+y+int(100*sin(rad1));
}
CClientDC *pDC=new CClientDC(this);
pDC->SetROP2(R2_NOTXORPEN);
p_br=pDC->SelectObject(&br);

pDC->Polygon(prev_v,10);
memcpy(prev_v,a,10*sizeof(CPoint));
pDC->Polygon(prev_v,10);

pDC->SelectObject(p_br);
delete pDC;
if (g>359) KillTimer(1); //角度
CView::OnTimer(nIDEvent);

㈥ 用C语言输出一个五角星图案

我用VC6实现了。关键代码如下:
1、获得五个外顶点的坐标:
int m_xw[5]; //5个X外顶点坐标
int m_yw[5]; //5个Y外顶点坐标

void CMyTestView::getCoord()
{
int c = 360 / 5; //角度

int r = 150;
for (int i = 0; i < 5; i++)
{
m_xw[i] = (int) (cos(i * c * PI / 30 - PI / 2) * (r) + r);
m_yw[i] = (int) (sin(i * c * PI / 30 - PI / 2) * (r) + r);
}
}
2、画线段:
在构造函数中调用求顶点坐标的函数求顶点坐标:
this->getCoord();

然后直接在绘图函数中添加如下代码:
void CMyTestView::OnDraw(CDC* pDC)
{
CMyTestDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);

// TODO: add draw code for native data here
pDC->MoveTo(m_xw[4], m_yw[4]);
pDC->LineTo(m_xw[1], m_yw[1]);
pDC->LineTo(m_xw[3], m_yw[3]);
pDC->LineTo(m_xw[0], m_yw[0]);
pDC->LineTo(m_xw[2], m_yw[2]);
pDC->LineTo(m_xw[4], m_yw[4]);
}

//运行结果

完整的程序给你发到QQ邮箱了!

㈦ C语言输出一个五角星

int x;
int y;
for(;x<7;x++)

记得初始化,又不是静态局部变量!
你得加几句换行语句。
下次写的时候,尽量加几句注释。

㈧ 求教,用c语言,循环语句输出一个五角星,带运行图。

提供示例代码供参考:

#include<stdio.h>

voidmain()
{
inti1,j1,k1,i2,j2,k2,i3,j3,k3,i4,j4,k4,m4,n4;

printf(" ");

for(i1=1;i1<6;i1++)/*这是五角星的上面一个角*/
{
for(j1=1;j1<19-i1;j1++)
printf("");
for(k1=1;k1<=2*i1-1;k1++)
printf("*");
printf(" ");
}

for(i2=1;i2<5;i2++)/*这是五角星的中间两个角*/
{
for(j2=1;j2<3*i2-3;j2++)
printf("");
for(k2=1;k2<=42-6*i2;k2++)
printf("*");
printf(" ");
}

for(i3=1;i3<3;i3++)/*这是中间与下部相接的部分*/
{
for(j3=1;j3<12-i3;j3++)
printf("");
for(k3=1;k3<=12+2*i3;k3++)
printf("*");
printf(" ");
}

for(i4=1;i4<5;i4++)/*这是五角星的下面两个角*/
{
for(j4=1;j4<10-i4;j4++)
printf("");
for(k4=1;k4<=10-2*i4;k4++)
printf("*");
for(m4=1;m4<6*i4-3;m4++)
printf("");
for(n4=1;n4<=10-2*i4;n4++)
printf("*");
printf(" ");
}

printf(" ");
}

运行截图:

㈨ 怎么样用C语言设计一个五角星,并写出程序设计方案

设立一个for循环,用一个变量i控制行数,再用一个变量j控制每打印*和' '的个数,利用printf函数输出字符串的强大控制功能实现。举例代码如下:
//#include "stdafx.h"//If the vc++6.0, with this line.
#include "stdio.h"
int main(void){
int i,j;
for(j=1,i=0;i<7;i++,i<4 ? j+=4 : j-=4)
printf("%*.*s\n",48+j/2,j,"* * * * * * *");
return 0;
}

㈩ 用c语言编写一个五角星(平面的)

#include "stdio.h"
#include "conio.h"
main()
{
printf("Hello star!\n");
printf(" *\n");
printf(" * *\n");
printf(" * * \n");
printf("* * * * * *\n");
printf("\n");
printf(" * * \n");
printf(" * * * \n");
printf(" * * * * \n");
printf(" * * * * \n");
printf("* * \n");
getch();
}