㈠ 用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();
}