當前位置:首頁 » 編程語言 » c語言經典源代碼

c語言經典源代碼

發布時間: 2023-07-30 21:39:14

① 最簡單的c語言代碼

最簡單的C語言代就是輸出「helloWord」,通常是作為初學編程語言時的第一個程序代碼。具體代碼如下:

#include <stdio.h>

int main(){

printf("Hello, World! ");

return 0;

}

(1)c語言經典源代碼擴展閱讀:

1、程序的第一行#include <stdio.h>是預處理器指令,告訴 C 編譯器在實際編譯之前要包含 stdio.h 文件。

2、下一行intmain()是主函數,程序從這里開始執行。

3、下一行printf(...)是C中另一個可用的函數,會在屏幕上顯示消息"Hello,World!"。

4、下一行return0;終止main()函數,並返回值0。

② 求幾個比較有趣,簡單的C語言源代碼 小白自己敲著練一下手感

最簡單的模擬計時器:

#include<stdio.h>

#include<conio.h>

#include<windows.h>

int m=0,s=0,ms=0; //m是分 s是秒 ms是毫秒

//以下是5個自編函數

void csh( ); //初始化界面

void yinc(int x,int y); //隱藏游標的函數(y值設為0就會隱藏)

void jishi( ); //計時器運行(每100毫秒變化一次)

void Color (short x, short y); //設定顏色的函數(y設為0就是黑底)

void gtxy (int x, int y); //控制游標位置的函數

int main( ) //主函數

{ csh( );

getch( );

while(1)

{ jishi( );

Sleep(100); //間隔100毫秒

if( kbhit( ) )break; //有鍵按下就退出循環

}

return 0;

}

void csh( ) //初始化界面

{Color(14,0); //設定淡黃字配黑底

printf(「 計時器」);

Color(10,0); //設定淡綠字配黑底

printf(" ┌───────────┐");

printf(" │ │");

printf(" └───────────┘");

gtxy(10,4); //游標到屏幕第10列4行處輸出

Color(7,0); //恢復白字黑底

printf(" 00:00:00 ");

yinc(1,0 ); //隱藏游標(yinc代表隱藏)

return;

}

void jishi( ) //計時器運行

{ms+=1;

if(ms==10){s+=1;ms=0;}

if(s==60){m+=1;s=0;}

gtxy(10,4);

Color(9,0); //設定淡藍字配黑底

if(m>9) printf(" %d:",m);

else printf(" 0%d:",m);

Color(14,0); //設定淡黃字配黑底

if(s>9) printf("%d:",s);

else printf("0%d:",s);

Color(12,0); //設定淡紅字配黑底

printf("0%d",ms);

}

void gtxy (int x, int y) //控制游標位置的函數

{ COORD pos;

pos.X = x;

pos.Y = y;

SetConsoleCursorPosition ( GetStdHandle (STD_OUTPUT_HANDLE), pos );

}

void Color (short ForeColor= 7, short BackGroundColor= 0) //設定顏色的函數

{ HANDLE handle = GetStdHandle ( STD_OUTPUT_HANDLE );

SetConsoleTextAttribute ( handle, ForeColor + BackGroundColor * 0x10 );

}

void yinc(int x,int y) //隱藏游標的設置(gb代表游標)

{ CONSOLE_CURSOR_INFO gb={x,y}; //x為1-100,y為0就隱藏游標

SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &gb);

}

③ C語言源代碼是什麼

數字版「拼圖」游戲C源代碼:

#include<time.h>

#include<stdio.h>

#include<stdlib.h>

#include<conio.h>

#include<windows.h>

int i, j, r, k; //i、j、r用於循環, k存放隨機數值


int m, n; // m、n是當前空位的下標, t標記排序是否成功

int a[4][4]; //存儲4×4共16個數字的數組

void show(void); //輸出數組表格

void csh(void); //初始化界面

int yes(void); //判斷排序是否成功

void up(void); //數字向上移動到空位(空位則下移)

void down(void); //數字向下移

void left(void); //數字向左移

void rght(void); //數字向右移

void inkey(void); //按鍵操作

void gtxy(int x, int y) ; //控制游標移動的函數

int main(void)

{ while(1)

{csh( );

while(1)

{ inkey();

show();

if ( yes( ) )

{gtxy(6,12); printf("你成功了! 再來一局y/n?"); break;}

}

if(getch( )== ʹnʹ)break;

}

return 0;

}

void csh(void)

{r=0;

CONSOLE_CURSOR_INFO cursor_info={1,0}; //以下兩行是隱藏游標的設置

SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE),&cursor_info);

for(i=0;i<4;i++) //給數組a依序賦值

for(j=0;j<4;j++)
{ if (i==3 && j==3) a[i][j]=0;
else a[i][j]=1+r++;
}

a[3][3]=a[1][1]; a[1][1]=0; //把a[3][3]與a[1][1]的值交換一下

m=1; n=1;

srand((unsigned)time(0)); //初始化隨機數發生器

for(r=0;r<500;r++) //將數組各值打亂
{k=rand( )%(4); //取0-3隨機數,分別代表上下左右四個方向
switch(k)
{ case 0: { up( );break; }
case 1: {down( );break; }
case 2: {left( );break; }
case 3: {rght( ); break; }
}
}

printf(" 數字拼圖");

printf(" ┌──────┬──────┬──────┬──────┐");

printf(" │ │ │ │ │");

printf(" ├──────┼──────┼──────┼──────┤");

printf(" │ │ │ │ │");

printf(" ├──────┼──────┼──────┼──────┤");

printf(" │ │ │ │ │");

printf(" ├──────┼──────┼──────┼──────┤");

printf(" │ │ │ │ │");

printf(" └──────┴──────┴──────┴──────┘");
show( );
}

void show(void)

{for(i=0;i<4;i++)

for(j=0;j<4;j++) //gtxy(7*j+9, 2*i+4)是游標到指定位置輸出數字

{gtxy(7*j+9,2*i+4); if(a[i][j]==0)printf(" │");

else if(a[i][j]>9)printf(" %d │",a[i][j]);

else printf(" %d │",a[i][j]);

}

}

void inkey(void)

{ int key;

key=getch( );
switch(key)
{ case 72: { up( ); break;}
case 80: {down( ); break; }
case 75: {left( ); break; }
case 77: {rght( );break;}
}
}

void up(void)

{ if (m!=3) //移動時要考慮空位"0"是否已經在邊界
{ a[m][n]=a[m+1][n]; m++; a[m][n]=0; }
}


void down(void)

{ if (m!=0)
{a[m][n]=a[m-1][n]; m--; a[m][n]=0; }
}

void left(void)

{ if (n!=3)
{ a[m][n]=a[m][n+1]; n++; a[m][n]=0;}
}
void rght(void)

{ if (n!=0)
{ a[m][n]=a[m][n-1]; n--; a[m][n]=0; }
}

int yes(void)

{ r=0;
for(i=0;i<4;i++)
for(j=0;j<4;j++)
{ if (a[i][j]!=1+r++) return (r==16)?1:0; }
}

void gtxy(int x, int y) //控制游標移動的函數

{ COORD coord;

coord.X = x;

coord.Y = y;

SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);

}

④ c語言猜數字游戲源代碼

小游戲2048:

#include<stdio.h>

#include<stdlib.h>

#include<conio.h>

#include<time.h>

#include<windows.h>

int jsk( ); //計算空格數

void rsgm( ); //重置游戲

void inkey( ); //按鍵輸入

void left( ); //向左移動

void right( ); //向右移動

void up( ); //向上移動

void down( ); //向下移動

void show( ); //輸出界面

void adnum( ); //添加隨機數

void yes( ); //游戲是否結束(1是0否)

void gtxy(int x, int y); //控制游標位置的函數

int a[4][4]; //存儲16個格子中的數字

int score = 0; //每局得分

int best = 0; //最高得分

int ifnum; //是否需要添加數字(1是0否)

int over; //游戲結束標志(1是0否)

int i,j,k;

int main( )

{ rsgm( ); //重置游戲

inkey( ); //按鍵輸入

return 0;

}

void Color(int a) //設定字元顏色的函數(a應為1-15)

{ SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),a); }

void rsgm( ) //重置游戲

{ score = 0; ifnum = 1; over = 0; srand((unsigned)time(0)); //啟動隨機數發生器

int n = rand( ) % 16; //隨機函數產生0-15的數字

for (i = 0; i < 4; i++)

{for (j = 0; j < 4; j++)

{ if (n == 0) { int k = rand( ) % 3; if (k == 0 || k == 1) { a[i][j] = 2; }

else { a[i][j] = 4; } n--; }

else { a[i][j] = 0; n--; }

}

}

adnum( );

system("cls");

CONSOLE_CURSOR_INFO gb={1,0}; //以下兩行是隱藏游標的設置,gb代指游標

SetConsoleCursorInfo( GetStdHandle(STD_OUTPUT_HANDLE), &gb );

Color(14); //設置字體淡黃色

printf(" 2048小游戲"); Color(7); //恢復白字黑底

printf(" ┌──────┬──────┬──────┬──────┐");

printf(" │ │ │ │ │");

printf(" ├──────┼──────┼──────┼──────┤");

printf(" │ │ │ │ │");

printf(" ├──────┼──────┼──────┼──────┤");

printf(" │ │ │ │ │");

printf(" ├──────┼──────┼──────┼──────┤");

printf(" │ │ │ │ │");

printf(" └──────┴──────┴──────┴──────┘");

show( );

}

void show( ) //輸出界面

{ for(i=0;i<4;i++)

for(j=0;j<4;j++)

{ gtxy(7*j+9,2*i+4); //gtxy(7*j+9, 2*i+4)是游標到指定位置輸出數字

if(a[i][j]==0){printf(" "); Color(7); printf("│");}

else if(a[i][j]<10){ if (a[i][j] == 2) { Color(14); }

else if (a[i][j] == 4) { Color(13); }

else if (a[i][j] == 8) { Color(12); }

printf(" %d ", a[i][j]); Color(7 ); printf("│");

}

else if (a[i][j] < 100){if (a[i][j] == 16) { Color(12); }

else if (a[i][j] == 32) { Color(10); }

else if (a[i][j] == 64) { Color(2 ); }

printf(" %d ", a[i][j]); Color(7); printf("│");

}

else if (a[i][j] < 1000) {if (a[i][j] == 128) { Color(9); }

else if (a[i][j] == 256) { Color(1); }

else if (a[i][j] == 512) { Color(13); }

printf(" %d ", a[i][j]); Color(7); printf("│");

}

else if (a[i][j] < 10000) {if (a[i][j] == 1024) { Color(5); }

else { Color(15); }

printf(" %d ", a[i][j]); Color(7); printf("│");

}

}

if (jsk( ) == 0)

{ yes( ); if (over) { gtxy(9,12); Color(10);

printf(" 游戲結束!是否繼續? [ Y/N ]:"); }

}

}

void inkey( ) //按鍵輸入

{ int key;

while (1)

{ key = getch( );

if (over) { if (key == 89|| key == 121) { rsgm( ); continue; }

else if (key == 78|| key == 110) { return; }

else continue; }

ifnum = 0;

if(key==224)key=getch( );

switch (key)

{ case 75: left( ); break;

case 77: right( ); break;

case 72: up( ); break;

case 80: down( );break;

}

if (score > best) { best = score; }

if (ifnum) { adnum( ); show( ); }

}

}

int jsk( ) //計算空格數

{ int n = 0;

for (i = 0; i < 4; i++)

{ for (j = 0; j < 4; j++) { if ( a[i][j] == 0) {n++;} } }

return n;

}

void left( ) //向左移動

{ for (i = 0; i < 4; i++)

{for (j = 1, k = 0; j < 4; j++)

{ if (a[i][j] > 0)

{ if ( a[i][k] == a[i][j])

{ a[i][k] *= 2; k++;

score = score + 2 * a[i][j];

a[i][j] = 0; ifnum = 1; }

else if ( a[i][k] == 0) { a[i][k] = a[i][j]; a[i][j] = 0; ifnum = 1; }

else { a[i][k + 1] = a[i][j]; if ((k + 1) != j) { a[i][j] = 0; ifnum = 1; }

k++; }

}

}

}

}

void right( ) //向右移動

{for (i = 0; i < 4; i++)

{for (j = 2, k = 3; j >= 0; j--)

{if (a[i][j] > 0)

{ if (a[i][k] == a[i][j])

{a[i][k] *= 2; k--; score = score + 2 * a[i][j]; a[i][j] = 0; ifnum = 1; }

else if ( a[i][k] == 0) {a[i][k] = a[i][j]; a[i][j] = 0; ifnum = 1; }

else { a[i][k - 1] = a[i][j]; if ((k - 1) != j) { a[i][j] = 0; ifnum = 1; } k--; }

}

}

}

}

void up( ) //向上移動

{for (i = 0; i < 4; i++)

{for (j = 1, k = 0; j < 4; j++)

{if (a[j][i] > 0)

{if ( a[k][i] == a[j][i]) { a[k][i] *= 2; k++;score = score + 2 * a[j][i];

a[j][i] = 0; ifnum = 1; }

else if ( a[k][i] == 0) { a[k][i] = a[j][i]; a[j][i] = 0; ifnum = 1; }

else { a[k + 1][i] = a[j][i]; if ((k + 1) != j) { a[j][i] = 0; ifnum = 1; }

k++; }

}

}

}

}

void down( ) //向下移動

{ for (i = 0; i < 4; i++)

{for (j = 2, k = 3; j >= 0; j--)

{if (a[j][i] > 0)

{if (a[k][i] == a[j][i])

{a[k][i] *= 2; k--;score = score + 2 * a[j][i]; a[j][i] = 0; ifnum = 1; }

else if (a[k][i] == 0) {a[k][i] = a[j][i]; a[j][i] = 0; ifnum = 1; }

else {a[k - 1][i] = a[j][i];

if ((k - 1) != j) {a[j][i] = 0; ifnum = 1; } k--; }

}

}

}

}

void adnum( ) //添加隨機數

{ srand(time(0)); int n = rand( ) % jsk( );

for (int i = 0; i < 4; i++)

{for (int j = 0; j < 4; j++)

{ if (a[i][j] == 0) {if (n != 0) { n--; }

else {int k = rand( ) % 3;

if (k == 0 || k == 1) {a[i][j] = 2; return; }

else {a[i][j] = 4; return; } }

}

}

}

}

void yes( ) //游戲是否結束

{ for (int i = 0; i < 4; i++)

{for (int j = 0; j < 3; j++)

{if (a[i][j] == a[i][j + 1] || a[j][i] == a[j + 1][i]) {over = 0; return; }}

}

over = 1;

}

void gtxy(int x, int y) //控制游標位置的函數

{ COORD zb; //zb代指坐標

zb.X = x;

zb.Y = y;

SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), zb);

}

⑤ 較復雜的c語言程序設計源代碼

一個「殲滅敵機」的小游戲,DEVc++通過編譯:

#include <stdio.h>

#include <conio.h>

#include <stdlib.h>

#include <windows.h>

#include <time.h>

#define zlx 10 //增量坐標(x)讓游戲框不靠邊

#define zly 3 //增量坐標(y)讓游戲框不靠邊

#define W 26 //游戲框的寬度

#define H 24 //游戲框的高度

int jiem[22][22]={0}, wj=10; //界面數組, 我機位置(初值為10)

int speed=4,density=30, score=0,death=0; //敵機速度, 敵機密度, 玩家成績,死亡次數

int m=0,n=0; // m,n是控制敵機的變數

void gtxy (int x, int y) //控制游標位置的函數

{ COORD pos;

pos.X = x; pos.Y = y;

SetConsoleCursorPosition ( GetStdHandle (STD_OUTPUT_HANDLE), pos );

}

voidColor(inta) //設定顏色的函數(a應為1-15)

{ SetConsoleTextAttribute( GetStdHandle(STD_OUTPUT_HANDLE), a ); }

void yinc(int x=1,int y=0) //隱藏游標的函數

{ CONSOLE_CURSOR_INFO gb={x,y}; //y設為0即隱藏

SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &gb);

}

void csh( ) //初始化函數

{ int i;

Color(7);

gtxy(zlx,zly); printf("╔"); gtxy(zlx+W-2,zly); printf("╗"); //左上角和右上角的框角

gtxy(zlx,zly+H-1); printf("╚"); gtxy(zlx+W-2,zly+H-1); printf("╝"); //下邊兩框角

for(i=2;i<W-2;i+=2) {gtxy(zlx+i,zly); printf("═"); } //列印上橫框

for(i=2;i<W-2;i+=2) {gtxy(zlx+i,zly+H-1); printf("═"); } //列印下橫框

for(i=1;i<H-1;i++) { gtxy(zlx,zly+i); printf("║"); } //列印左豎框

for(i=1;i<H-1;i++) {gtxy(zlx+W-2,zly+i); printf("║"); } //列印右豎框

Color(14); gtxy(19,2); printf("殲滅敵機"); Color(10);

gtxy(37,5); printf("設置:Esc ");

gtxy(37,7); printf("發射:↑ ");

gtxy(37,9); printf("控制:← → ");

gtxy(37,11);printf("得分:%d",score);

gtxy(37,13); printf("死亡:%d",death);

yinc(1,0);

}

void qcjm( ) //清除界面函數

{int i,j;

for(i=0;i<H-2;i++)

for(j=0;j<W-4;j++){gtxy(zlx+2+j,zly+1+i);printf(" ");}

}

void feiji( ) //飛機移動函數

{int i,j;

for(i=21;i>=0;i--) //從底行往上是為了避免敵機直接沖出數組

for(j=0;j<22;j++)

{if(i==21&&jiem[i][j]==3)jiem[i][j]=0; //底行賦值0 以免越界

if(jiem[i][j]==3)jiem[i][j]=0, jiem[i+1][j]=3;

}

if(jiem[20][wj]==3&&jiem[21][wj]==1) death++;

}

void zidan( ) //子彈移動函數

{ int i,j;

for(i=0;i<22;i++)

for(j=0;j<22;j++)

{if(i==0&&jiem[i][j]==2) jiem[i][j]=0;

if(jiem[i][j]==2) {if(jiem[i-1][j]==3) score+=100,printf("7");

jiem[i][j]=0,jiem[i-1][j]=2; }

}

}

void print( ) //輸出界面函數

{int i,j;

qcjm( );

for(i=0;i<22;i++)

for(j=0;j<22;j++)

{ gtxy(12+j,4+i);

if(jiem[i][j]==3) {Color(13);printf("□");}

if(jiem[i][j]==2) {Color(10);printf(".");}

if(jiem[i][j]==1) {Color(10);printf("■");}

}

gtxy(37,11); Color(10);printf("得分:%d",score);

gtxy(37,13); printf("死亡:%d",death);

}

void setting( ) //游戲設置函數

{ qcjm( );

gtxy(12,4);printf("選擇敵機速度:");

gtxy(12,5);printf(" 1.快 2.中 3.慢>>");

switch(getche( ))

{case '1': speed=2; break;

case '2': speed=4; break;

case '3': speed=5; break;

default: gtxy(12,6);printf(" 錯誤!默認值");

}

gtxy(12,7);printf("選擇敵機密度:");

gtxy(12,8);printf(" 1.大 2.中 3.小>>");

switch(getche( ))

{case '1': density=20; break;

case '2': density=30;break;

case '3': density=40; break;

default: gtxy(12,9);printf(" 錯誤!默認值");

}

for(int i=0;i<22;i++)

for(int j=0;j<22;j++) jiem[i][j]=0;

jiem[21][wj=10]=1; jiem[0][5]=3;

gtxy(12,10);printf(" 按任意鍵保存...");

getch( );

qcjm( );

}

void run( ) //游戲運行函數

{ jiem[21][wj]=1; //值為1代表我機(2則為子彈)

jiem[0][5]=3; //值為3代表敵機

SetConsoleTitle("殲滅敵機"); //設置窗口標題

while(1)

{if (kbhit( )) //如有鍵按下,控制我機左右移動、發射或進行設定

{int key;

if((key=getch( ))==224) key=getch( );

switch(key)

{case 75: if(wj>0) jiem[21][wj]=0,jiem[21][--wj]=1; break;

case 77: if(wj<20)jiem[21][wj]=0,jiem[21][++wj]=1;break;

case 72: jiem[20][wj]=2; break;

case 27: setting( );

}

}

if(++n%density==0) //控制產生敵機的速度

{ n=0;srand((unsigned)time(NULL));

jiem[0][rand( )%20+1]=3;

}

if(++m%speed==0) { feiji( ); m=0; } //控制敵機移動速度(相對子彈而言)

zidan( ); //子彈移動

print( ); //輸出界面

Sleep(120); //延時120毫秒

}

}

int main( )

{csh( );

run( );

return 0;

}

熱點內容
流控腳本破解 發布:2025-02-07 08:39:09 瀏覽:413
什麼是資源為什麼要研究資源配置 發布:2025-02-07 08:25:19 瀏覽:87
釣魚網站源碼製作 發布:2025-02-07 08:23:54 瀏覽:139
mac運行fl需要什麼配置 發布:2025-02-07 08:15:45 瀏覽:573
安卓怎麼做都比不了蘋果 發布:2025-02-07 08:12:47 瀏覽:238
怎麼給物理機配置ip地址 發布:2025-02-07 08:01:37 瀏覽:139
三國志13未加密 發布:2025-02-07 07:54:37 瀏覽:926
馬斯克中國訪問 發布:2025-02-07 07:54:29 瀏覽:102
資料庫有表 發布:2025-02-07 07:50:49 瀏覽:29
基於nginx搭建圖片伺服器原理 發布:2025-02-07 07:44:18 瀏覽:449