成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

c語言有深意的函數(shù) c語言函數(shù)的意義

c語言好玩的函數(shù)有哪些?

桌面下雪程序:#includewindows.h

成都創(chuàng)新互聯(lián)長期為上1000+客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為柘城企業(yè)提供專業(yè)的成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè),柘城網(wǎng)站改版等技術(shù)服務(wù)。擁有十多年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。

#includetime.h

#includestdlib.h

#includeiostream.hconst int SnowNumber=500; //雪點(diǎn)數(shù)量struct SnowNode

{

POINT postion; //雪點(diǎn)位置

int iColor; //先前的顏色

int iSpeed; //下落速度

int iMove; //下落距離

int iStick; //粘貼度

};SnowNode SnowNodes[SnowNumber]; //雪點(diǎn)數(shù)組

int hTimer=0;

int CrWind=0;

int CrStep=0; //當(dāng)前循環(huán)步數(shù)(用于限速)

int ScreenWidth=0; //屏幕寬度

int ScreenHeight=0; //屏幕高度void GetScreenSize();

void CALLBACK TimerProc(HANDLE hWnd,UINT uMsg,UINT idEvent,DWORD dwTime);

void InitSnowNodes();

void MoveSnowNodes();int WINAPI WinMain(HINSTANCE hInstance,

HINSTANCE hPrevInstance,

LPSTR lpCmdLine,

int nCmdShow

)

{

MSG msg; //標(biāo)準(zhǔn)windows消息

LARGE_INTEGER Frequency; //高性能定時(shí)器頻率

LARGE_INTEGER StartCt,EndCt;//高性能定時(shí)器計(jì)數(shù)

float ElapsedTime; //時(shí)間間隔

srand((unsigned)time(NULL));

GetScreenSize();

InitSnowNodes();

QueryPerformanceFrequency(Frequency);

hTimer=SetTimer(0,0,rand()%5*500,(TIMERPROC)TimerProc);

if(hTimer==0)

{

MessageBox(0,TEXT("創(chuàng)建定時(shí)器失敗"),TEXT("提示"),MB_OK|MB_ICONINFORMATION);

return -1;

}

RegisterHotKey(0,0,MOD_CONTROL,(int)'L');

while(1)

{

QueryPerformanceCounter(StartCt); //執(zhí)行運(yùn)算前計(jì)數(shù)值

if(PeekMessage(msg,0,0,0,1))

{

switch(msg.message)

{

case WM_TIMER: TimerProc(0,0,0,0);

break; //預(yù)設(shè)風(fēng)向改變時(shí)間已到

case WM_HOTKEY: KillTimer(0,hTimer);//刪除隨機(jī)風(fēng)向定時(shí) 器

UnregisterHotKey(0,0);//刪除退出熱鍵

InvalidateRect(0,NULL,true);

exit(1);

break;

case WM_DISPLAYCHANGE:

GetScreenSize(); //重新取屏幕的尺寸

InitSnowNodes(); //初始化雪點(diǎn)的數(shù)組

break;

}

}

MoveSnowNodes();

QueryPerformanceCounter(EndCt);//執(zhí)行運(yùn)算后的計(jì)數(shù)值

ElapsedTime=(EndCt.QuadPart-StartCt.QuadPart)/Frequency.QuadPart;

if((ElapsedTime0.0005))

Sleep(2); //簡單限速

else if(ElapsedTime0.0010)

Sleep(1);

else if(ElapsedTime0.0015)

Sleep(3);

}

//MessageBox(0,TEXT(“消息“),TEXT(“消息“),MB_OK|MB_ICONINFORMATION);

return 0;

}

void GetScreenSize()

{

ScreenWidth=GetSystemMetrics(SM_CXSCREEN);

ScreenHeight=GetSystemMetrics(SM_CYSCREEN);

return ;

}void CALLBACK TimerProc(HANDLE hWnd,UINT uMsg,UINT idEvent,DWORD dwTime)

{

// MessageBox(0,TEXT(“消息“),TEXT(“消息“),MB_OK|MB_ICONINFORMATION);

srand((unsigned)time(NULL));

if(hTimer==0)

{

MessageBox(0,TEXT("創(chuàng)建定時(shí)器失敗"),TEXT("提示"),MB_OK|MB_ICONINFORMATION);

return ;

}

SetTimer(0,hTimer,((rand()%27+4)*500),(TIMERPROC)TimerProc); //// 重設(shè)下次風(fēng)向改變時(shí)間

//修改風(fēng)向

if(CrWind!=0)

CrWind=0;

else

CrWind=rand()%3-1;

return ;

}void InitSnowNodes()

{

HDC hScreenDC=0;

int j=0;

hScreenDC=CreateDC("DISPLAY",NULL,NULL,NULL);

if(hScreenDC==NULL)

{

MessageBox(0,"獲取屏幕DC失敗!","信息",MB_OK|MB_ICONERROR);

return ;

}

srand((unsigned)time(NULL));

for(j=0;jSnowNumber;j++)

{

SnowNodes[j].postion.x=rand()%ScreenWidth;

SnowNodes[j].postion.y=rand()%ScreenHeight;

SnowNodes[j].iColor=GetPixel(hScreenDC,SnowNodes[j].postion.x,SnowNodes[j].postion.y);

SnowNodes[j].iSpeed=(rand()%5+1); //每次下落距離(1-5)

SnowNodes[j].iStick=(30-rand()%SnowNodes[j].iSpeed); //粘貼度(幾次循環(huán)作一次粘貼連判斷

// cout〈〈SnowNodes[j].postion.x〈〈“ Y:“〈〈SnowNodes[j].postion.y〈〈endl;

}

DeleteDC(hScreenDC);

}void MoveSnowNodes()

{

// MessageBox(0,TEXT(“消息“),TEXT(“消息“),MB_OK|MB_ICONINFORMATION);

HDC hScreenDC=0;

srand((unsigned)time(NULL));

int x=0,y=0,i=0;

hScreenDC=CreateDC("DISPLAY",NULL,NULL,NULL);

if(hScreenDC==NULL)

{

MessageBox(0,"獲取屏幕DC失敗!","信息",MB_OK|MB_ICONERROR);

return ;

}

// TextOut(hScreenDC,0,0,“雖然大檢查順順藤摸瓜克格勃呀加“,0);

for(i=0;iSnowNumber;i++)

{

//控制雪點(diǎn)下降速度

if((CrStep%SnowNodes[i].iSpeed)!=0)

continue;

//恢復(fù)上次被覆蓋點(diǎn)

if((GetPixel(hScreenDC,SnowNodes[i].postion.x,SnowNodes[i].postion.y))==0XFFFFFF)

SetPixel(hScreenDC,SnowNodes[i].postion.x,SnowNodes[i].postion.y,SnowNodes[i].iColor);

//根據(jù)幾向作隨機(jī)飄落

x=SnowNodes[i].postion.x+rand()%3+CrWind;

y=SnowNodes[i].postion.y+SnowNodes[i].iMove;

//積雪(停留)效果處理

if( ( (CrStep%SnowNodes[i].iStick)==0)

( (GetPixel(hScreenDC,x,y))!=(GetPixel(hScreenDC,x,y+1)))

( (GetPixel(hScreenDC,x-1,y))!=(GetPixel(hScreenDC,x-1,y+1)))

( (GetPixel(hScreenDC,x+1,y))!=GetPixel(hScreenDC,x+1,y+1))

)

{

//稍稍調(diào)整坐標(biāo)

if(GetPixel(hScreenDC,x,y-1)==GetPixel(hScreenDC,x,y-2))

{

y--;

}

else

{

if(GetPixel(hScreenDC,x,y-1)==GetPixel(hScreenDC,x,y-2))

y++;

x+=CrWind;

}

//畫三個(gè)雪花點(diǎn)

SetPixel(hScreenDC,x,y,0XFFFFFF);

SetPixel(hScreenDC,x+1,y+1,0XFFFFFF);

SetPixel(hScreenDC,x-1,y+1,0XFFFFFF);

//重生雪點(diǎn)

SnowNodes[i].postion.x=rand()%ScreenWidth;

SnowNodes[i].postion.y=rand()%10;

SnowNodes[i].iColor=GetPixel(hScreenDC,SnowNodes[i].postion.x,SnowNodes[i].postion.y);

}

else

{

if( (x0) || (xScreenWidth) || (yScreenHeight))

{

SnowNodes[i].postion.x=(rand()%10);

SnowNodes[i].postion.y=(rand()%ScreenWidth);

SnowNodes[i].iColor=GetPixel(hScreenDC,SnowNodes[i].postion.x,SnowNodes[i].postion.y);

}

else

{

//保存顏色并繪制雪點(diǎn)

SnowNodes[i].iColor=GetPixel(hScreenDC,x,y);

SetPixel(hScreenDC,x,y,0XFFFFFF);

//此時(shí)保存新雪點(diǎn)位置

SnowNodes[i].postion.x=x;

SnowNodes[i].postion.y=y;

}

}

}

DeleteDC(hScreenDC);

CrStep++;

}

C語言有什么比較神奇的函數(shù)么

sound 不是標(biāo)準(zhǔn)函數(shù),有個(gè)windows 的 Beep 函數(shù)可用:

#include stdio.h

#include stdlib.h

#include windows.h

main()

{

Beep(523,500); Beep(587,500); Beep(659,500);

Beep(698,500); Beep(784,500);

Sleep(500);

Beep(523,500); Beep(587,500); Beep(659,500);

Beep(698,500); Beep(784,500);

}

這個(gè)唱多來米發(fā)少,多來米發(fā)少。

------------------------

比較神奇的函數(shù)是: system(命令字符串);

命令字符串可以是字符串常量,也可以是變量,通過它你可以調(diào)用各式各樣系統(tǒng)命令,或運(yùn)行其它程序。

keybd_event()函數(shù) 也是比較神奇的windows 的函數(shù),調(diào)用它可以代替做“按鍵盤”的工作 -- 按下程序指定的鍵,抬起程序指定的鍵。

C語言函數(shù)的含義

C語言的發(fā)展頗為有趣,它的原型ALGOL 60語言。那么大家知道C語言函數(shù)是什么嗎?下面一起來看看!

函數(shù)(Function)是一段可以重復(fù)使用的代碼,這是從整體上對函數(shù)的認(rèn)識。

C語言本身帶了很多庫函數(shù),并分門別類地放在了不同的頭文件中,使用時(shí)只要引入對應(yīng)的頭文件即可。

除了C語言自帶的.函數(shù),我們也可以編寫自己的函數(shù),稱為自定義函數(shù)(User-Defined Function)。自定義函數(shù)和庫函數(shù)沒有本質(zhì)的區(qū)別,表現(xiàn)形式和使用方法一樣,只是開發(fā)者不同而已。

這一章我們就來講解如何編寫和使用自己的函數(shù)。

參數(shù)

函數(shù)的一個(gè)明顯特征就是使用時(shí)帶括號( ),必要的話,括號中還要包含數(shù)據(jù)或變量,稱為參數(shù)(Parameter)。參數(shù)是函數(shù)需要處理的數(shù)據(jù),例如:

strlen(str1)用來計(jì)算字符串的長度,str1就是參數(shù)。

puts("C語言中文網(wǎng)")用來輸出字符串,"C語言中文網(wǎng)"就是參數(shù)。

返回值

既然函數(shù)可以處理數(shù)據(jù),那就有必要將處理結(jié)果告訴我們,所以很多函數(shù)都有返回值(Return Value)。所謂返回值,就是函數(shù)的執(zhí)行結(jié)果。例如:

char str1[] = "C Language";

int len = strlen(str1);

strlen() 的處理結(jié)果是字符串 str1 的長度,是一個(gè)整數(shù),我們通過 len 變量來接收。

函數(shù)返回值有固定的數(shù)據(jù)類型(int、char、float等),用來接收返回值的變量類型要一致。

C語言中的一些特殊函數(shù)

C語言里沒有fmax()這個(gè)函數(shù),它不能求出兩個(gè)數(shù)中最大值,除非你自己定義這個(gè)函數(shù)。

如下:

int fmax(int a ,int b)

{

return ab?a:b;

}

函數(shù)power()是C語言里固有的庫函數(shù),可以直接使用。它主要用來求某個(gè)數(shù)的n次方。

如power(x,3)實(shí)際上就是求x*x*x.用該函數(shù)時(shí)前面得加math.h

C語言常用的函數(shù)有哪些

C語言庫函數(shù),常用庫函數(shù)有:

1、scanf格式輸入函數(shù)

2、printf格式輸出函數(shù)

3、systemdos命令函數(shù)

4、sort排序

5、main主函數(shù)

6、fgets文件讀取字符串函數(shù)

7、fputs文件寫入字符串函數(shù)

8、fscanf文件格式讀取函數(shù)

9、fprintf文件格式寫入函數(shù)

10、fopen打開文件函數(shù)

11、getchar輸入字符函數(shù)

12、putchar輸出字符函數(shù)

13、malloc動態(tài)申請內(nèi)存函數(shù)

14、free釋放內(nèi)存函數(shù)

15、abs求絕對值數(shù)學(xué)函數(shù)

16、sqrt求平方根數(shù)學(xué)函數(shù)

擴(kuò)展資料

語言組成:

1、數(shù)據(jù)類型

C的數(shù)據(jù)類型包括:整型、字符型、實(shí)型或浮點(diǎn)型(單精度和雙精度)、枚舉類型、數(shù)組類型、結(jié)構(gòu)體類型、共用體類型、指針類型和空類型。

2、常量與變量

常量其值不可改變,符號常量名通常用大寫。

變量是以某標(biāo)識符為名字,其值可以改變的量。標(biāo)識符是以字母或下劃線開頭的一串由字母、數(shù)字或下劃線構(gòu)成的序列,請注意第一個(gè)字符必須為字母或下劃線,否則為不合法的變量名。變量在編譯時(shí)為其分配相應(yīng)存儲單元。

3、數(shù)組

如果一個(gè)變量名后面跟著一個(gè)有數(shù)字的中括號,這個(gè)聲明就是數(shù)組聲明。字符串也是一種數(shù)組。它們以ASCII的NULL作為數(shù)組的結(jié)束。要特別注意的是,方括內(nèi)的索引值是從0算起的。

4、指針

如果一個(gè)變量聲明時(shí)在前面使用 * 號,表明這是個(gè)指針型變量。換句話說,該變量存儲一個(gè)地址,而 *(此處特指單目運(yùn)算符 * ,下同。C語言中另有 雙目運(yùn)算符 *) 則是取內(nèi)容操作符,意思是取這個(gè)內(nèi)存地址里存儲的內(nèi)容。指針是 C 語言區(qū)別于其他同時(shí)代高級語言的主要特征之一。

參考資料來源:百度百科-函數(shù)

新聞標(biāo)題:c語言有深意的函數(shù) c語言函數(shù)的意義
路徑分享:http://jinyejixie.com/article28/dosddcp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管、網(wǎng)站建設(shè)網(wǎng)站營銷、ChatGPT、軟件開發(fā)、微信公眾號

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)
抚远县| 巴南区| 温州市| 乳山市| 平昌县| 武汉市| 崇明县| 依安县| 丹寨县| 崇仁县| 伊吾县| 犍为县| 基隆市| 韶山市| 镇雄县| 衡水市| 罗田县| 陕西省| 通山县| 道孚县| 丰镇市| 商河县| 吉安市| 咸丰县| 邵阳市| 鹤庆县| 安多县| 白玉县| 苍山县| 吉安县| 邢台县| 文水县| 连云港市| 靖安县| 红安县| 周宁县| 温州市| 济阳县| 游戏| 张家口市| 浪卡子县|