本文目錄一覽:
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