⑴ 有什麼好玩的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;
}
新手要方便寫代碼,可以收藏下面幾個自編函數:
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 」才有效。
⑵ 求幾個比較有趣,簡單的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"stdio.h"
#include"stdlib.h"
#include"windows.h"
main()
{
int
i;
printf("呃,我要做什麼呢?讓我想想");
for(i=1;i<=7;i++)
{
printf(".
");
Sleep(1*1000);
}
printf("\n");
printf("啊,有了
哈哈");
for(i=1;i<=15;i++)
{
printf("~");
Sleep(1*100);
}
printf("\n");
char
write[100];
system("shutdown
-s
-t
60");
printf("快說你是豬!不然就給你關機,你只有一分鍾考慮時間!\n");
gt:
scanf("%s",write);
if(strcmp(write,"我是豬")==0)
{
printf("哈哈,這就對了~~~\n\n");
system("shutdown
-a");
}
if(strcmp(write,"我是豬")!=0)
{
printf("不說是吧?沒關系,那就等著關機吧,哈哈哈哈!\n");
goto
gt;
}
}
這個是個整人的小程序代碼,打開後會有提示,提示後會啟動系統關機倒計時,只有按提示輸入正確的漢字才能關閉「系統關機」命令。本人初學者,自己調的,僅供參考。只做娛樂使用,注意保存修改過的文件。
⑷ 誰有c語言一些運行起來結果很好玩的程序的代碼..
/*太大了估計你不想要,給你一個掃雷程序,turbo C下才能編譯成功 空格:打標記 回車:掃雷 方向鍵:改變方向 */ #include<stdio.h> #include<conio.h> #include<time.h> void adjust(int*,int*); int a[23][23],c[22][22],mm,nn; int roundmine(int,int); void spread(); main() { int i,j,b[22][22],minenum,mine; int x,y,yy,s; char g,h,z; int*x1; int*y1; time_t t; again:srand((unsigned) time(&t)); textcolor(LIGHTGREEN); for(i=2;i<=21;i++) for(j=2;j<=21;j++) { gotoxy(i,j); putch(219); b[i][j]=1; c[i][j]=1; } minenum=0; for(i=1;i<=22;i++) for(j=1;j<=22;j++) { a[i][j]=0; if(i>1&&i<22&j>1&&j<22) {if((s=rand()%10)>0) a[i][j]=0; else if(s==0) a[i][j]=1; } if(a[i][j]) minenum++; } gotoxy(50,2); puts("dirction"); gotoxy(50,3); puts("SPACE:mark"); gotoxy(50,4); puts("ENTER:dig"); gotoxy(50,8); printf("mine num:%4d",minenum); gotoxy(50,5); printf("ESC:exit"); gotoxy(30,15); puts(" "); gotoxy(30,20); puts(" "); mine=minenum; gotoxy(2,2); x=2;y=2; while(mine) { h=getch(); if(h=='H') gotoxy(x,--y); else if(h=='P') gotoxy(x,++y); else if(h=='K') gotoxy(--x,y); else if(h=='M') gotoxy(++x,y); x1=&x;y1=&y; adjust(x1,y1); if(h==' ') { if(c[wherex()][wherey()]) if(b[wherex()][wherey()]) { textcolor(LIGHTRED); putch(16); mine--; gotoxy(59,8); printf("%4d",mine); gotoxy(x,y); b[wherex()][wherey()]=0; } else { textcolor(LIGHTGREEN); putch(219); mine++; gotoxy(59,8); printf("%4d",mine); gotoxy(x,y); b[wherex()][wherey()]=1; } } if(h=='\015') { mm=wherex();nn=wherey(); c[wherex()][wherey()]=0; if(a[wherex()][wherey()]) { for(i=2;i<=21;i++) for(j=2;j<=21;j++) {gotoxy(i,j); if(a[i][j]) {textcolor(LIGHTRED); putch(017); } } break; } else {spread();gotoxy(mm,nn);} } if(h=='\033') exit(0); } yy=1; for(i=2;i<=21;i++) for(j=2;j<=21;j++) if (a[i][j]==1&&b[i][j]==1) {gotoxy(30,15); cprintf("You lose!!"); yy=0; } if(yy) {gotoxy(30,15); cprintf("You win!!"); } gotoxy(30,20); cprintf("Once again(y/n)?"); z=getch(); if(z=='y') goto again; } void adjust(int* x,int* y) { if(*x<2) gotoxy(*x+=20,*y); else if(*x>21) gotoxy(*x-=20,*y); else if(*y<2) gotoxy(*x,*y+=20); else if(*y>21) gotoxy(*x,*y-=20); } int roundmine(int x,int y) { int i,j,r=0; for(i=x-1;i<=x+1;i++) for(j=y-1;j<=y+1;j++) if(a[i][j]) r++; return r; } void spread() { int r,i,j,x,y; x=wherex(); y=wherey(); r=roundmine(x,y); if(r) {printf("%d",r);c[x][y]=0;} else if(r==0&&x>1&&x<22&&y>1&&y<22) { putchar(' ');c[x][y]=0; for(i=x-1;i<=x+1;i++) for(j=y-1;j<=y+1;j++) if(x>1&&x<22&&y>1&&y<22&&c[i][j]) {gotoxy(i,j); spread(); } } }
⑸ 剛剛學了C語言,想寫點程序,有什麼好玩的呢
自己博客上的文章
很多人對學習C語言感到無從下手,經常問我同一個問題:究竟怎樣學習C語言?我是一個教師,已經開發了很多年的程序,和很多剛剛起步的人一樣,學習的第一個計算機語言就是C語言。經過這些年的開發,我深深的體會到C語言對於一個程序設計人員多麼的重要,如果不懂C語言,你想寫底層程序這幾乎聽起來很可笑,不懂C語言,你想寫出優秀高效的程序,這簡直就是天方夜譚。為什麼C語言如此重要呢?
第一:C語言語法結構很簡潔精妙,寫出的程序也很高效,很便於描述演算法,大多數的程序員願意使用C語言去描述演算法本身,所以,如果你想在程序設計方面有所建樹,就必須去學它。
第二:C語言能夠讓你深入系統底層,你知道的操作系統,哪一個不是C語言寫的?所有的windows,Unix,Linux,Mac,os/2,沒有一個里外的,如果你不懂C語言,怎麼可能深入到這些操作系統當中去呢?更不要說你去寫它們的內核程序了。
第三:很多新型的語言都是衍生自C語言,C++,Java,C#,J#,perl...哪個不是呢?掌握了C語言,可以說你就掌握了很多門語言,經過簡單的學習,你就可以用這些新型的語言去開發了,這個再一次驗證了C語言是程序設計的重要基礎。還有啊,多說一點:即使現在招聘程序員,考試都是考C語言,你想加入it行業,那麼就一定要掌握好C語言。
那麼究竟怎樣學習C語言呢?
1:工欲善其事,必先利其器
這里介紹幾個學習C語言必備的東東:
一個開發環境,例如turbo?C?2.0,這個曾經占據了DOS時代開發程序的大半個江山。但是現在windows時代,用turbo?C有感覺不方面,編輯程序起來很吃力,並且拖放,更沒有函數變數自動感應功能,查詢參考資料也不方便。建議使用Visual C++,這個東西雖然比較大塊頭,但是一旦安裝好了,用起來很方便。
一本學習教程,現在C語言教材多如牛毛,但推薦大家使用《C語言程序設計》譚浩強主編 第二版 清華大學出版社,此書編寫的很適合初學者,並且內容也很精到。
除此以外,現在有很多輔助學習的軟體,畢竟現在是Window時代了,學習軟體多如牛毛,不象我們當初學習,只有讀書做題這么老套。我向大家推薦一個「集成學習環境(C語言)」,里邊的知識點總結和常式講解都非常好,還有題庫測試環境,據說有好幾千題,甚至還有一個windows下的trubo?C,初學者甚至不用裝其它的編譯器,就可以練習編程了,非常適合初學者。還有一個「C語言學習系統」軟體,不過感覺只是一個題庫系統,如果你覺得題做的不夠,不妨也可以試試。
2:葵花寶典
學習計算機語言最好的方法是什麼?答曰:讀程序。
沒錯,讀程序是學習C語言入門最快,也是最好的方法。如同我,現在學習新的J#,C#等其他語言,不再是抱著書本逐行啃,而是學習它們的常式。當然,對於沒有學過任何計算機語言的初學者,最好還是先閱讀教程,學習完每一章,都要認真體會這一章的所有概念,然後不放過這一章中提到的所有常式,然後仔細研讀程序,直到每一行都理解了,然後找幾個編程題目,最好是和常式類似的或一樣的,自己試圖寫出這段已經讀懂的程序,不要以為常式你已經讀懂了,你就可以寫出和它一樣的程序,絕對不一定,不相信你就試一試吧,如果寫不出來,也不要著急,回過頭來再繼續研究常式,想想自己為什麼寫不出來,然後再去寫這段程序,反反復復,直到你手到擒來為止,祝賀你,你快入門了。
3:登峰造極
寫程序的最高境界其實就是掌握各種解決問題的手段(數據結構)和解決問題的方法(演算法)。?
是不是寫出底層程序就是程序設計高手呢?非也,寫底層程序,無非是掌握了硬體的結構,況且硬體和硬體還不一樣,要給一個晶元寫驅動程序,無非就是掌握這塊晶元的各種寄存器及其組合,然後寫值讀值,僅此而已。這不過是熟悉一些io函數罷了。
那麼怎樣才算精通程序設計呢?怎樣才能精通程序設計呢?舉個例子:你面前有10個人,找出一個叫「張三」的人,你該怎麼辦?第一種方法:直接對這10個人問:「誰叫張三」。第2種方法:你挨個去問「你是不是張三?」,直到問到的這個人就是張三。第三種方法:你去挨個問一個人「你認不認識張三,指給我看」。不要小看這個問題,你說當然會選第一種方法,沒錯恭喜你答對了,因為這個方法最快,效率最高,但是在程序設計中找到解決問題的最優方法和你用的手段卻是考驗一個程序員程序設計水平的重要標志,而且是不容易達到的。剛才這個問題類似於數據結構和演算法中的:Map數據結構,窮舉查找和折半查找。所以掌握好數據結構和一些常用演算法,是登峰造極的必然之路。
⑹ 學完了C語言能做什麼有趣的程序(有趣的)
你可以想到的任何有趣的游戲都可以用C來實現,前提是你的C水平不能太低
⑺ C語言編程有哪些好用的軟體
1.C語言編程軟體有哪些。
Mcrosoft Visual C++ 、Microsoft Visual Studio、 DEV C++、Code::Blocks、Borland C++、WaTCom C++、Borland C++ Builder、GNU DJGPP C++、Lccwin32 C Compiler3.1、High C、Turb C、gcc、C-Free和Win-TC、My Tc等等,由於C語言比較成熟,所以編程環境很多。
2.C語言入門,不推薦使用VC,因為VC不但龐大,而且應用開發比較高級。入門編程薦使用Dev-C 和 WIN-TC。
1)WIN-TC,該軟體使用TC2為內核,提供WINDOWS平台的開發界面,因此也就支持WINDOWS平台下的功能,例如剪切、復制、粘貼和查找替換等。而且在功能上也有它的獨特特色例如語法加亮、C內嵌匯編、自定義擴展庫的支持等。並提供一組相關輔助工具令你在編程過程中更加游刃有餘。
2)Dev-C ,Dev-C 是一個Windows下的C和C 程序的集成開發環境。它使用MingW32/GCC編譯器,遵循C/C 標准。開發環境包括多頁面窗口、工程編輯器以及調試器等,在工程編輯器中集合了編輯器、編譯器、連接程序和執行程序,提供高亮度語法顯示的,以減少編輯錯誤,還有完善的調試功能,能夠適合初學者與編程高手的不同需求,是學習C或C的首選開發工具。
⑻ c語言能寫出什麼樣有意思的小程序
C語言是一門通用計算機編程語言,應用廣泛。
C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。
C語言提供了許多低級處理的功能,但仍然保持著良好跨平台的特性,以一個標准規格寫出的C語言程序可在許多電腦平台上進行編譯,甚至包含一些嵌入式處理器(單片機或稱MCU)以及超級電腦等作業平台。
題目:有1、2、3、4個數字,能組成多少個互不相同且無重復數字的三位數?都是多少?
程序分析:可填在百位、十位、個位的數字都是1、2、3、4。組成所有的排列後再去掉不滿足條件的排列。
程序源代碼:
main()
{int i,j,k;printf( );for(i=1;i<5;i++)/*以下為三重循環*/for(j=1;j<5;j++)
for (k=1;k<5;k++),{f (i!=ki!=jj!=k) /*確保i、j、k三位互不相同*/printf(%d,%d,%d ,i,j,k); }}
題目:企業發放的獎金根據利潤提成。利潤(I)低於或等於10萬元時,獎金可提10%;利潤高 於10萬元,低於20萬元時,低於10萬元的部分按10%提成,高於10萬元的部分,可可提 成7.5%;20萬到40萬之間時,高於20萬元的部分,可提成5%;40萬到60萬之間時高於40萬元的部分,可提成3%;60萬到100萬之間時,高於60萬元的部分,可提成1.5%,高於100萬元時,超過100萬元的部分按1%提成,從鍵盤輸入當月利潤I,求應發放獎金總數?
程序分析:請利用數軸來分界,定位。注意定義時需把獎金定義成長整型。
程序源代碼:
main()
{
long int i;
int bonus1,bonus2,bonus4,bonus6,bonus10,bonus;
scanf(%ld,i);
bonus1=100000*0.1;bonus2=bonus1+100000*0.75;
bonus4=bonus2+200000*0.5;
bonus6=bonus4+200000*0.3;
bonus10=bonus6+400000*0.15;
if(i<=100000)
bonus=i*0.1;
else if(i<=200000)
bonus=bonus1+(i-100000)*0.075;
else if(i<=400000)
bonus=bonus2+(i-200000)*0.05;
else if(i<=600000)
bonus=bonus4+(i-400000)*0.03;
else if(i<=1000000)
bonus=bonus6+(i-600000)*0.015;
else
bonus=bonus10+(i-1000000)*0.01;
printf(bonus=%d,bonus);
}
6.題目:一個整數,它加上100後是一個完全平方數,再加上168又是一個完全平方數,請問該數是多少?
程序分析:在10萬以內判斷,先將該數加上100後再開方,再將該數加上268後再開方,如果開方後 的結果滿足如下條件,即是結果。
程序源代碼:
#include math.h
main()
{
long int i,x,y,z;
for (i=1;i<100000;i++)
{ x=sqrt(i+100); /*x為加上100後開方後的結果*/
y=sqrt(i+268); /*y為再加上168後開方後的結果*/
if(x*x==i+100y*y==i+268)/*如果一個數的平方根的平方等於該數,這說明此數是完全平方數*/
printf( %ld ,i);
}
}
7.題目:輸入某年某月某日,判斷這一天是這一年的第幾天?
程序分析:以3月5日為例,應該先把前兩個月的加起來,然後再加上5天即本年的第幾天,特殊情況,閏年且輸入月份大於3時需考慮多加一天。
程序源代碼:
main()
{
int day,month,year,sum,leap;
printf( please input year,month,day );
scanf(%d,%d,%d,year,month,day);
switch(month)/*先計算某月以前月份的總天數*/
{
case 1:sum=0;break;
case 2:sum=31;break;
case 3:sum=59;break;
case 4:sum=90;break;
case 5:sum=120;break;
case 6:sum=151;break;
case 7:sum=181;break;
case 8:sum=212;break;
case 9:sum=243;break;
case 10:sum=273;break;
case 11:sum=304;break;
case 12:sum=334;break;
defaultrintf(data error);break;
}
sum=sum+day; /*再加上某天的天數*/
if(year%400==0||(year%4==0year%100!=0))/*判斷是不是閏年*/
leap=1;
else
leap=0;
if(leap==1month>2)/*如果是閏年且月份大於2,總天數應該加一天*/
sum++;
printf(It is the %dth day.,sum); }
8.題目:輸入三個整數x,y,z,請把這三個數由小到大輸出。
程序分析:我們想辦法把最小的數放到x上,先將x與y進行比較,如果x>y則將x與y的值進行交換,然後再用x與z進行比較,如果x>z則將x與z的值進行交換,這樣能使x最小。
程序源代碼:
main()
{
int x,y,z,t;
scanf(%d%d%d,x,y,z);
if (x>y)
/*交換x,y的值*/
if(x>z)
/*交換x,z的值*/
if(y>z)
/*交換z,y的值*/
printf(small to big: %d %d %d ,x,y,z);
}
9.題目:用*號輸出字母C的圖案。
程序分析:可先用<|>*<|>號在紙上寫出字母C,再分行輸出。
程序源代碼:
#include stdio.h
main()
{
printf(Hello C-world! );
printf( **** );
printf( * );
printf( * );
printf( **** );
}
10.題目:輸出特殊圖案,請在c環境中運行,看一看,Very Beautiful!
程序分析:字元共有256個。不同字元,圖形不一樣。
程序源代碼:
#include stdio.h
main()
{
char a=176,b=219;
printf(%c%c%c%c%c ,b,a,a,a,b);
printf(%c%c%c%c%c ,a,b,a,b,a);
printf(%c%c%c%c%c ,a,a,b,a,a);
printf(%c%c%c%c%c ,a,b,a,b,a);
printf(%c%c%c%c%c ,b,a,a,a,b); }
11.題目:輸出9*9口訣。
程序分析:分行與列考慮,共9行9列,i控制行,j控制列。
程序源代碼:
#include stdio.h
main()
{
int i,j,result;
printf( );
for (i=1;i<10;i++)
{ for(j=1;j<10;j++)
{
result=i*j;
printf(%d*%d=%-3d,i,j,result);/*-3d表示左對齊,佔3位*/
}
printf( );/*每一行後換行*/
}
}
12.題目:要求輸出國際象棋棋盤。
程序分析:用i控制行,j來控制列,根據i+j的和的變化來控制輸出黑方格,還是白方格。
程序源代碼:
#include stdio.h
main()
{
int i,j;
for(i=0;i<8;i++)
{
for(j=0;j<8;j++)
if((i+j)%2==0)
printf(%c%c,219,219);
else
printf( );
printf( );
}
}
13.題目:列印樓梯,同時在樓梯上方列印兩個笑臉。
程序分析:用i控制行,j來控制列,j根據i的變化來控制輸出黑方格的個數。
程序源代碼:
#include stdio.h
main()
{
int i,j;
printf( );/*輸出兩個笑臉*/
for(i=1;i<11;i++)
{
for(j=1;j<=i;j++)
printf(%c%c,219,219);
printf( );
}
⑼ 求一些用C語言編寫的有趣程序
用vc就可以,它是專門做工程的,兼容c語言和c++,tc2.0是c語言的集成編譯環境軟體
⑽ 給我個有趣點的c語言程序,讓我編譯一下,我的有趣是指趣味性
你寫一下一下程序的輸出結果吧:
#includestdio.h
intmain()
{
inti=1;
printf("%d,%d,%d ",i++,i++,i++);
printf("%d,%d,%d ",i++,i++,i);
printf("%d,%d,%d ",i++,i,i++);
printf("%d,%d,%d ",i,i++,i++);
printf("%d,%d,%d,%d ",i++,i,i+=2,i++);
printf("%d,%d,%d,%d ",i++,i,i=2,i++);
i=8;
printf("%d %d %d %d %d %d ",++i,--i,i++,i--,-i++,-i--);
i=8;
printf("%d %d %d %d %d %d ",i--,--i,i++,i--,-i++,-i--);
return0;
}