各種好玩的c語言代碼,各種好玩的c語言代碼大全

本文目錄一覽:

c語言浪漫代碼

#include stdio.h

int main()

{

int i, j, k, l, m;

char c = ‘*’; //ASCII碼裡面 3 就是一個字元小愛心

for (i = 1; i = 5; i++)

printf(“\n”); //開頭空出5行

for (i = 1; i = 4; i++)

{ //前3行中間有空隙分開來寫

for (j = 1; j = 32 – 2 * i; j++)

printf(” “); //左邊的空格,每下一行左邊的空格比上一行少2個 //8*n-2*i

for (k = 1; k = 4 * i – 2; k++)

printf(“%c”, c); //輸出左半部分字元小愛心

for (l = 1; l = 17 – 4 * i; l++)

printf(” “); //中間的空格,每下一行的空格比上一行少4個

for (m = 1; m = 4 * i – 2; m++)

printf(“%c”, c); //輸出右半部分字元小愛心

printf(“\n”); //每一行輸出完畢換行

}

for (i = 1; i = 3; i++)

{ //下3行中間沒有空格

for (j = 1; j = 22 + 1; j++)

printf(” “); //左邊的空格 //8*(n-1)+1

for (k = 1; k = 31; k++)

printf(“%c”, c); //輸出字元小愛心

printf(“\n”); //每一行輸出完畢換行

}

for (i = 7; i = 1; i–)

{ //下7行

for (j = 1; j = 38 – 2 * i; j++)

printf(” “); //左邊的空格,每下一行左邊的空格比上一行少2個//8*(n+1)-2*i

for (k = 1; k = 4 * i + 1; k++)

printf(“%c”, c); //每下一行的字元小愛心比上一行少4個(這個循環是i–)

printf(“\n”); //每一行輸出完畢換行

}

for (i = 1; i = 38; i++)

printf(” “); //最後一行左邊的空格

printf(“%c”, c); //最後一個字元小愛心

for (i = 1; i = 5; i++)

printf(“\n”); //最後空出5行

return 0;

}

c語言必背100代碼有哪些?

/*輸出9*9口訣。共9行9列,i控制行,j控制列。*/

#include “stdio.h”

main()

{int i,j,result;

for (i=1;i10;i++)

{ for(j=1;j10;j++)

{

result=i*j;

printf(“%d*%d=%-3d”,i,j,result);/*-3d表示左對齊,佔3位*/

}

printf(“\n”);/*每一行後換行*/

}

}

擴展資料:

C語言的字元串其實就是以’\0’字元結尾的char型數組,使用字元型並不需要引用庫,但是使用字元串就需要C標準庫裡面的一些用於對字元串進行操作的函數。它們不同於字元數組。使用這些函數需要引用頭文件string.h。

文件輸入/輸出

在C語言中,輸入和輸出是經由標準庫中的一組函數來實現的。在ANSI C中,這些函數被定義在頭文件stdio.h;中。

標準輸入/輸出

有三個標準輸入/輸出是標準I/O庫預先定義的:

stdin標準輸入

stdout標準輸出

stderr輸入輸出錯誤

參考資料來源:百度百科-c語言

求幾C語言個小遊戲代碼,簡單的,要注釋、、謝謝了、

// Calcu24.cpp : Defines the entry point for the console application.

//

/*

6-6

24點遊戲

*/

#include “conio.h”

#include “stdlib.h”

#include “time.h”

#include “math.h”

#include “string.h”/*

從一副撲克牌中,任取4張。

2-10 按其點數計算(為了表示方便10用T表示),J,Q,K,A 統一按 1 計算

要求通過加減乘除四則運算得到數字 24。

本程序可以隨機抽取紙牌,並用試探法求解。

*/void GivePuzzle(char* buf)

{

char card[] = {‘A’,’2′,’3′,’4′,’5′,’6′,’7′,’8′,’9′,’T’,’J’,’Q’,’K’}; for(int i=0; i4; i++){

buf[i] = card[rand() % 13];

}

}

void shuffle(char * buf)

{

for(int i=0; i5; i++){

int k = rand() % 4;

char t = buf[k];

buf[k] = buf[0];

buf[0] = t;

}

}

int GetCardValue(int c)

{

if(c==’T’) return 10;

if(c=’0′ c=’9′) return c – ‘0’;

return 1;

}

char GetOper(int n)

{

switch(n)

{

case 0:

return ‘+’;

case 1:

return ‘-‘;

case 2:

return ‘*’;

case 3:

return ‘/’;

} return ‘ ‘;

}double MyCalcu(double op1, double op2, int oper)

{

switch(oper)

{

case 0:

return op1 + op2;

case 1:

return op1 – op2;

case 2:

return op1 * op2;

case 3:

if(fabs(op2)0.0001)

return op1 / op2;

else

return 100000;

} return 0;

}

void MakeAnswer(char* answer, int type, char* question, int* oper)

{

char p[4][3];

for(int i=0; i4; i++)

{

if( question[i] == ‘T’ )

strcpy(p[i], “10”);

else

sprintf(p[i], “%c”, question[i]);

}

switch(type)

{

case 0:

sprintf(answer, “%s %c (%s %c (%s %c %s))”,

p[0], GetOper(oper[0]), p[1], GetOper(oper[1]), p[2], GetOper(oper[2]), p[3]);

break;

case 1:

sprintf(answer, “%s %c ((%s %c %s) %c %s)”,

p[0], GetOper(oper[0]), p[1], GetOper(oper[1]), p[2], GetOper(oper[2]), p[3]);

break;

case 2:

sprintf(answer, “(%s %c %s) %c (%s %c %s)”,

p[0], GetOper(oper[0]), p[1], GetOper(oper[1]), p[2], GetOper(oper[2]), p[3]);

break;

case 3:

sprintf(answer, “((%s %c %s) %c %s) %c %s”,

p[0], GetOper(oper[0]), p[1], GetOper(oper[1]), p[2], GetOper(oper[2]), p[3]);

break;

case 4:

sprintf(answer, “(%s %c (%s %c %s)) %c %s”,

p[0], GetOper(oper[0]), p[1], GetOper(oper[1]), p[2], GetOper(oper[2]), p[3]);

break;

}

}

bool TestResolve(char* question, int* oper, char* answer)

{

// 等待考生完成

int type[5]={0,1,2,3,4};//計算類型

double p[4];

double sum=0;

//

for(int i=0; i4; i++) //循環取得點數

{

p[i]=GetCardValue(int(question[i]));

} for(i=0;i5;i++)

{

MakeAnswer(answer,type[i],question,oper); //獲取可能的答案

switch(type[i])

{

case 0:

sum=MyCalcu(p[0],MyCalcu( p[1],MyCalcu(p[2], p[3], oper[2]),oper[1]),oper[0]); //A*(B*(c*D))

break;

case 1:

sum=MyCalcu(p[0],MyCalcu(MyCalcu(p[1], p[2], oper[1]),p[3],oper[2]),oper[0]); //A*((B*C)*D)

break;

case 2:

sum=MyCalcu(MyCalcu(p[0], p[1], oper[0]),MyCalcu(p[2], p[3], oper[2]),oper[1]); // (A*B)*(C*D)

break;

case 3:

sum=MyCalcu(MyCalcu(MyCalcu(p[0], p[1], oper[0]),p[2],oper[1]),p[3],oper[2]); //((A*B)*C)*D

break;

case 4:

sum=MyCalcu(MyCalcu(p[0],MyCalcu(p[1], p[2], oper[1]),oper[0]),p[3],oper[2]); //(A*(B*C))*D

break;

}

if(sum==24) return true;

}

return false;

}

/*

採用隨機試探法:就是通過隨機數字產生 加減乘除的 組合,通過大量的測試來命中的解法

提示:

1. 需要考慮用括弧控制計算次序的問題 比如:( 10 – 4 ) * ( 3 + A ), 實際上計算次序的數目是有限的:

A*(B*(c*D))

A*((B*C)*D)

(A*B)*(C*D)

((A*B)*C)*D

(A*(B*C))*D

2. 需要考慮計算結果為分數的情況:( 3 + (3 / 7) ) * 7

3. 題目中牌的位置可以任意交換

*/

bool TryResolve(char* question, char* answer)

{

int oper[3]; // 存儲運算符,0:加法 1:減法 2:乘法 3:除法

for(int i=0; i1000 * 1000; i++)

{

// 打亂紙牌順序

shuffle(question);

// 隨機產生運算符

for(int j=0; j3; j++)

oper[j] = rand() % 4; if( TestResolve(question, oper, answer) ) return true;

} return false;

}

int main(int argc, char* argv[])

{

// 初始化隨機種子

srand( (unsigned)time( NULL ) ); char buf1[4]; // 題目

char buf2[30]; // 解答

printf(“***************************\n”);

printf(“計算24\n”);

printf(“A J Q K 均按1計算,其它按牌點計算\n”);

printf(“目標是:通過四則運算組合出結果:24\n”);

printf(“***************************\n\n”);

for(;;)

{

GivePuzzle(buf1); // 出題

printf(“題目:”);

for(int j=0; j4; j++){

if( buf1[j] == ‘T’ )

printf(“10 “);

else

printf(“%c “, buf1[j]);

} printf(“\n按任意鍵參考答案…\n”);

getch(); if( TryResolve(buf1, buf2) ) // 解題

printf(“參考:%s\n”, buf2);

else

printf(“可能是無解…\n”); printf(“按任意鍵出下一題目,x 鍵退出…\n”);

if( getch() == ‘x’ ) break;

} return 0;

}

有什麼好玩的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 );

}

void Color(int a)  //設定顏色的函數(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;iW-2;i+=2) {gtxy(zlx+i,zly);  printf(“═”); }      //列印上橫框

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

for(i=1;iH-1;i++) { gtxy(zlx,zly+i);  printf(“║”); }       //列印左豎框

for(i=1;iH-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;iH-2;i++)

for(j=0;jW-4;j++){gtxy(zlx+2+j,zly+1+i);printf(” “);}

}

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

{int i,j;

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

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

     {if(i==21jiem[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]==3jiem[21][wj]==1) death++;

}

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

{ int i,j;

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

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

     {if(i==0jiem[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;i22;i++)

for(j=0;j22;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;i22;i++)

 for(int j=0;j22;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(wj0) jiem[21][wj]=0,jiem[21][–wj]=1; break;

        case 77: if(wj20) 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;

}

新手要方便寫代碼,可以收藏下面幾個自編函數:

SetConsoleTitle(“俄羅斯方塊”);  //設置窗口左上角標題欄處出現”俄羅斯方塊”5個字

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

n= rand(  ) % 20;   //產生隨機數0-19中的一個. 如 rand(  )%5 就產生0-4中的一個數

SetConsoleTitle(  )函數在windows.h里, srand(  )函數與rand(  )函數要配合用,

就是同時要用,在stdlib.h里。如果 rand( )%10+1 就產生1-10之中的一個數。

Sleep(300);   //延時300毫秒(就是程序暫停300毫秒後繼續運行)

system(“cls”);   //清屏(把窗口裡的內容全部清除,游標定於(0,0)位置處)

這兩個函數都在windows.h里。開頭4個自編函數 編寫如下:

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

{ COORD pos;

pos.X = x;

pos.Y = y;

SetConsoleCursorPosition ( GetStdHandle (STD_OUTPUT_HANDLE), pos );

}

void Color (int a)  //設定顏色的函數

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

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

{ CONSOLE_CURSOR_INFO   gb={ x , y };   //gb代表游標

SetConsoleCursorInfo ( GetStdHandle(STD_OUTPUT_HANDLE),  gb );

}

void kou(int w,int h)  //設置窗口大小的函數

{HANDLE  hl=GetStdHandle ( STD_OUTPUT_HANDLE ) ;

COORD  size={ w , h };

SetConsoleScreenBufferSize( hl , size );

SMALL_RECT  rc={ 0, 0, w, h };

SetConsoleWindowInfo( hl, 1, rc );

}

最後這個函數,參數w是寬h是高。裡邊5行中第一行定義了句柄型變數hl,並給它賦值。

第二行定義了坐標型結構體變數size,它的取值決定了緩衝區的大小。第三行就是使用

size的值設置好緩衝區大小。第四行定義了變數rc,它的值決定當前窗口顯示的位置與

大小(不得超過緩衝區的大小)。前兩個0,0是從緩衝區左上角0列0行位置處開始,後兩

個參數可以小於w和h.比如 rc={0,0,w-10,h-5}; 最後一行使用rc的值設置好窗口,中間

那個參數要為” 1 “或寫「 true 」才有效。

原創文章,作者:TCJGA,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/329810.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
TCJGA的頭像TCJGA
上一篇 2025-01-14 18:55
下一篇 2025-01-14 18:55

相關推薦

  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • Python字元串寬度不限制怎麼打代碼

    本文將為大家詳細介紹Python字元串寬度不限制時如何打代碼的幾個方面。 一、保持代碼風格的統一 在Python字元串寬度不限制的情況下,我們可以寫出很長很長的一行代碼。但是,為了…

    編程 2025-04-29
  • Python基礎代碼用法介紹

    本文將從多個方面對Python基礎代碼進行解析和詳細闡述,力求讓讀者深刻理解Python基礎代碼。通過本文的學習,相信大家對Python的學習和應用會更加輕鬆和高效。 一、變數和數…

    編程 2025-04-29
  • AES加密解密演算法的C語言實現

    AES(Advanced Encryption Standard)是一種對稱加密演算法,可用於對數據進行加密和解密。在本篇文章中,我們將介紹C語言中如何實現AES演算法,並對實現過程進…

    編程 2025-04-29
  • Python滿天星代碼:讓編程變得更加簡單

    本文將從多個方面詳細闡述Python滿天星代碼,為大家介紹它的優點以及如何在編程中使用。無論是剛剛接觸編程還是資深程序員,都能從中獲得一定的收穫。 一、簡介 Python滿天星代碼…

    編程 2025-04-29
  • 倉庫管理系統代碼設計Python

    這篇文章將詳細探討如何設計一個基於Python的倉庫管理系統。 一、基本需求 在著手設計之前,我們首先需要確定倉庫管理系統的基本需求。 我們可以將需求分為以下幾個方面: 1、庫存管…

    編程 2025-04-29
  • 學習Python對學習C語言有幫助嗎?

    Python和C語言是兩種非常受歡迎的編程語言,在程序開發中都扮演著非常重要的角色。那麼,學習Python對學習C語言有幫助嗎?答案是肯定的。在本文中,我們將從多個角度探討Pyth…

    編程 2025-04-29
  • 寫代碼新手教程

    本文將從語言選擇、學習方法、編碼規範以及常見問題解答等多個方面,為編程新手提供實用、簡明的教程。 一、語言選擇 作為編程新手,選擇一門編程語言是很關鍵的一步。以下是幾個有代表性的編…

    編程 2025-04-29
  • Python實現簡易心形代碼

    在這個文章中,我們將會介紹如何用Python語言編寫一個非常簡單的代碼來生成一個心形圖案。我們將會從安裝Python開始介紹,逐步深入了解如何實現這一任務。 一、安裝Python …

    編程 2025-04-29
  • Python被稱為膠水語言

    Python作為一種跨平台的解釋性高級語言,最大的特點是被稱為”膠水語言”。 一、簡單易學 Python的語法簡單易學,更加人性化,這使得它成為了初學者的入…

    編程 2025-04-29

發表回復

登錄後才能評論