當前位置:首頁 » 編程語言 » c語言的小項目下載
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言的小項目下載

發布時間: 2022-05-11 01:55:18

A. 有哪些c語言的小項目適合新手練習的,幾百到幾千行的那種

所有初學者面臨的第一個問題便是:如何選擇教材。好的開始是成功的一半,選擇一本優秀的教材是事半功倍的關鍵因素。不幸的是,學校通常會幫你指定一本很差勁的C語言課本;而幸運的是,你還可以再次選擇。大名鼎鼎的譚浩強教授出了一本《C語言程序設計》,據說發行量有超過400萬,據我所知,很多學校都會推薦這本書作為C語言課本。雖然本人的名字(譚浩宇)跟教授僅僅一字之差,但我是無比堅定地黑他這本書的。這本書不是寫給計算機專業的學生的,而是給那些需要考計算機等級考試的其它專業學生看的。這本書的主要缺點是:例子程序非常不專業,不能教給你程序設計應該掌握的思考方式;程序風格相當地不好,會讓你養成亂寫代碼的惡習;錯誤太多,曾經有人指出過這本書的上百個錯誤,其中不乏關鍵的概念性錯誤。好了,這本書我也不想說太多了,有興趣大家可以網路一下:)Kernighan和Ritchie的《TheCProgrammingLanguage》(中譯名《C程序設計語言》)堪稱經典中的經典,不過舊版的很多內容都已過時,和現在的標准C語言相去甚遠,大家一定要看最新的版本,否則不如不看。另外,即使是最經典最權威的書,也沒有法面面俱到,所以手邊常備一本《C語言參考手冊》是十分必要的。《C語言參考手冊》就是《CReferenceManual》,是C語言標準的詳細描述,包括絕大多數C標准庫函數的細節,算得上是最好的標准C語言的工具書。順便提一句,最新的《C程序設計語言》是根據C89標准修訂的,而《C語言參考手冊》描述的是C99標准,二者可能會有些出入,建議按照C99標准學習。還有一本《C和指針》,寫得也是相當地不錯,英文名是《PointersonC》,特別地強調指針的重要性,算是本書的一個特點吧。不過這本書並不十分適合初學者,如果你曾經學過C語言,有那麼一些C語言的基礎但又不是很扎實,那麼你可以嘗試一下這本書。我相信,只要你理解了指針,C語言便不再神秘。如果你已經啃完了一本C語言教材,想要更進一步,那麼有兩本書你一定要看。首先是《CTrapsandPitfalls》(中譯名《C陷井與缺陷》),很薄的一本小冊子,內容非常非常地有趣。要注意一點,這本書是二十多年前寫成的,裡面提到的很多C語言的缺陷都已被改進,不過能夠了解一些歷史也不是什麼壞事。然後你可以挑戰一下《ExpertCProgramming》(中譯名《C專家編程》),書如其名,這本書頗具難度,一旦你仔細讀完並能透徹理解,你便可以放心大膽地在簡歷上寫「精通C語言」了。切記一個原則,不要讀自己目前還看不懂的書,那是浪費生命。如果你看不懂,那你一定是缺失了某些必需基礎知識。此時,你要仔細分析自己需要補充哪些內容,然後再去書店尋找講述的這些內容的書籍。把基礎知識補充完畢再回頭來學習,才會真正的事半功倍。Unix/Linux還是Windows,這是個很大的問題不同的編程環境會造就出不同思維的程序員。Windows的程序員大多依賴集成開發環境,比如VisualStudio,而Unix程序員更加鍾愛Makefile與控制台。顯而易見,集成開發環境更容易上手,在Windows上學習C語言,只需要會按幾個基本的VisutalC++工具欄按鈕就可以開始寫Hello,World!了,而在Unix下,你需要一些控制台操作的基本知識。有人也許認為Unix的環境更簡潔,但習慣的力量是很大的,大家都很熟悉Windows的基本操作,而為了學習C語言去專門裝一個Unix系統,似乎有點不劃算。對於一個只懂得Windows基本操作、連DOS是什麼都不知道的新手而言,盡快做一些有趣而有意義的事情才是最重要的。用C語言寫一個小程序遠比學習ls、cat等命令有趣,況且我們要專注於C語言本身,就不得不暫時忽略一些東西,比如編譯鏈接的過程、Makefile的寫法等等等等。所以我建議初學者應該以VisualC++6.0(不是VisualC++.NET)或者DevC++作為主要的學習環境,而且千萬不要在IDE的使用技巧上過多糾纏,因為今後你一定要轉向Unix環境的。VisualC++6.0使用很方便,調試也很直觀,但其默認的編譯器對C標準的支持並不好,而DevC++使用gcc編譯器,對C99的標准都支持良好。使用順帶提一下,很多大學的C語言課程還在使用TurboC2.0作為實驗環境,這是相當不可取的,原因其一是TC2.0對C標准幾乎沒有支持,其二是TC2.0編譯得到的程序是16位的,這對今後理解32位的程序會造成極大的困擾(當然,用djgpp之類的東西可以使TC2.0編譯出32位程序,不過那過於復雜了)。等你學完一本C語言的教材,你一定要轉向Unix平台繼續學習,幾乎所有的C語言高級教程都是基於Unix平台的(比如《C專家編程》)。轉變的過程是痛苦的,你需要面對的是各種紛繁復雜的命令,完全不同於Windows平台的思考方式,但是這種痛苦是值得的。Unix與C是共生的,Unix的思考方式和習慣更加符合C語言的思考方式和習慣。在Unix下,你可以找到無數優秀的源代碼供你盡情閱讀,你可以方便地查看某個庫函數的聯機手冊,還可以看到最優秀的代碼風格歸結起來就是一句話:初學C語言,建議使用Windows系統和集成開發環境,在准備向「高手」方向努力時,請先轉向Unix平台。書已選定,環境配置完成,正所謂萬事俱備,只欠你自己的努力了。請從書的前言開始,仔細地閱讀手頭的教材,很多人看書喜歡直接從第一章開始看,這是錯誤的做法。前言是作者對整本書的大體介紹,作者一般會告訴你需要什麼基礎才能夠順利閱讀本書,這可以幫助你檢驗自己的基礎知識是否已經具備。看完前言,還要瀏覽一下目錄,了解一下書的整體結構,順便給自己安排一下學習計劃。學習C語言,必需注意每一個細節,書上的例子代碼一定要自己親自敲一遍,編譯執行輸出都跟書上說的一致才能算是學完了一個例子,如果不一致,就要仔細找原因。出了書本上有的例子,自己還要「創造」一些例子,比如學習運算符優先順序的時候,可以寫幾個相同的表達式,在不同的位置加上括弧,看看有哪些不同的行為,比如*p++和(*p)++,又比如a=b==c、(a=b)==c和a=(b==c)等等。自己抄的書上的例子以及改造之後的例子,還有自己「創造」的例子,都應該仔細地歸類保存,並且要在源代碼中寫上簡短的注釋,闡述這個例子的意圖。例子之後就是習題了,我建議初學者把所有的習題都獨立做一遍,然後對照答案的代碼,看看自己的代碼有那些不足,再試著修改自己的代碼。很多人不重視習題,這是極大的錯誤,因為作者通常會在習題中說明一些重要的道理,而不是單純地檢驗前面的知識。也許你認為這樣學習太慢,其實不然。學得細致就不用走回頭路,等你學到後面才發現自己前面沒搞清楚,那才是真的得不償失。一般說來,整本書讀完,你應該完成數千行乃至上萬行的代碼,無論是原封不動照抄書上的,還是自己心血來潮寫就的,都是今後繼續學習的一筆財富。以我自己舉例,閱讀《Windows核心編程》時(我只閱讀了3/4的內容),除了抄書上的代碼,還自己寫了很多例子,一共有5574行(用unix下的wc工具統計),時隔多日,我早已記不清Windows的系統編程了,但只要花幾分鍾翻出以前的代碼看看,便會重新瞭然於胸。所謂好記性不如爛筆頭,就是這個道理。仔細讀書、認真抄寫源代碼、獨立完成習題外加更進一步的實驗,最後將所有的代碼留下,成為自己的經驗和財富,絕對的辛苦,也絕對的事半功倍。當然,這種方式只適合學習需要精通的技術,如果不是學習C語言,你還要具體情況具體分析。

B. 推薦一些學完C語言可以完成的小項目

貪吃蛇游戲
計算器
黑白棋游戲
迷宮問題
掃地雷游戲
通訊錄
學生成績管理
圖書借閱管理等等……

C. 我想找幾個c語言的小項目做~!

小程序么,給你幾個你試試:
演算法類的:求全排列,算24,快速排序的迭代實現,漢諾塔,8皇後,1筆畫......
綜合類:學生信息管理,動畫演示排序,列印年歷,計算某文章單詞數.....
深入的:磁碟文件管理,線性方程求解,超大整數計算,算PI到小數點後2萬位,貪吃蛇,俄羅斯方塊.....
超簡單的:求1元2次方程的解,牛頓迭代法求平方根,逐差法計算試驗數據,求方差,坐標變換.....

你能把上面那些全做出來,恭喜你,你是天才了...-_-

D. 有哪些適合練手的c語言小項目,幾百到幾千行吧,最好循序漸進的

http://www.pythontip.com/acm/problemCategory

這里有很多題目可以供你練習。

E. 我想用C語言開發一個小項目

很小的游戲,你可以試試貓捉老鼠,請盡量使用圖片進行製作。貓捉老鼠的難度還是挺簡單的,你可以試試對你生活中有幫助的,例如解方程,解應用題。
我現在正在開發一個游戲,類似於打磚塊,但有四個板都能動,就像SHATTER一樣。但還是得看自己的愛好,你喜歡什麼就做什麼。
如果LZ不嫌棄的話,就點一下我下面的最佳答案吧:)

F. 求一份C語言小項目的代碼,要求150行以上,很急!

我給個我寫的吧,不過不完全符合要求。子函數只有7個,但有兩個宏,其中一個可以換成函數。其實如果把測試改成自動的,可以超過10個,你可以自己改一改。

項目名稱:UTF8StringEscaper。在Github上可以搜到,不過其實只是個單文件的小程序。代碼參考了leptjson。

項目概述:此程序可以將輸入的UTF8文本進行轉義,例如如果手動輸入 1 2 這四個字元,可以輸出 1(換行)2。

採用的C語言技術,這怎麼好寫呢?:注釋、轉義序列、預處理器、指針、inline

/*測試用例:
hello,world

u4F60u597D u4E16u754C
uD869uDEA5
你好//win下失敗

uqweru1234
u0068uqwer
auDFFFa
auD800a
ym
uD800u0068
uD800uqwer
*/

#include<assert.h>
#include<stdbool.h>
#include<stdio.h>
#include<stdlib.h>

#ifdefined__clang__&&!(definedWIN32||definedlinux||definenix)
#defineWIN32
#endif

#definemovenext(ch,p)(ch=*p++)
voidParse(constchar*p);
intParseUnicode(constchar**pp);
intParseHex(constchar*num);
(unsignedshorthigh,unsignedshortlow);
voidEncodeUTF8(unsignedcodePoint);

intmain(void)
{
#ifdefWIN32
system("chcp65001");
#endif

charinput[BUFSIZ];
printf(" ¥>");
while(gets(input)!=NULL)//讀到EOF時返回NULL
{
Parse(input);
printf(" ¥>");
}

return0;
}

#defineHandleEscape(ch,escaped)
casech:
putchar(escaped);
break
voidParse(constchar*p)
{
charch;
while(movenext(ch,p)!='')
{
switch(ch)
{
case'\'://需要轉義
switch(movenext(ch,p))
{
HandleEscape('"','"');
HandleEscape('\','\');
HandleEscape('b','');
HandleEscape('f','f');
HandleEscape('n',' ');
HandleEscape('r',' ');
HandleEscape('t',' ');
//case'/'://斜杠的轉義是可選的

case'u':
{
intcodePoint=ParseUnicode(&p);
if(codePoint==-1)//ParseHex失敗
{
printf(" Error!");
return;
}
EncodeUTF8(codePoint);
break;
}
default://不支持的轉義
//putchar('\');
putchar(ch);
break;
}
break;
default://無需轉義
putchar(ch);
break;
}
}
}

(unsignedshortsurrogate){returnsurrogate>=0xD800&&surrogate<=0xDBFF;}
(unsignedshortsurrogate){returnsurrogate>=0xDC00&&surrogate<=0xDFFF;}
intParseUnicode(constchar**pp)
{
constchar*p=*pp;
inthigh=ParseHex(p);//跳過字元u
unsignedcodePoint;
if(high==-1)//解析失敗
return-1;

//解析成功
p+=4;//移過xxxx
codePoint=high;

if(IsHighSurrogate(high)&&(*p)=='\'&&(*(p+1))=='u')//解析低代理項
{
intlow=ParseHex(p+2);//移過u
if(IsLowSurrogate(low))//ParseHex失敗或不是低代理項時仍編碼當前碼點,其餘的留給下一輪解析
{
p+=6;//移過uxxxx
codePoint=GetCodePointFromSurrogatePare(high,low);
}
}

*pp=p;
returncodePoint;
}

intParseHex(constchar*num)//解析uxxxx中的4個16進制字元
{
inthex=0;//本來用ushort即可,但出錯時需要返回-1

for(inti=0;i<4;i++)//只解析xxxx
{
charch=*num++;
hex<<=4;
if(ch>='0'&&ch<='9')
hex|=ch-'0';
elseif(ch>='A'&&ch<='F')
hex|=ch-'A'+10;
elseif(ch>='a'&&ch<='f')
hex|=ch-'a'+10;
else
return-1;//非16進制字元
}
returnhex;
}

(constunsignedshorthigh,constunsignedshortlow)
{
return0x10000+(high-0xD800)*0x400+(low-0xDC00);
}

voidEncodeUTF8(constunsignedcodePoint)
{
if(codePoint<=0x007F)
putchar((char)(codePoint));
elseif(codePoint<=0x07FF)
{
putchar((char)(0xC0|((codePoint>>6)&0xFF)));
putchar((char)(0x80|(codePoint&0x3F)));
}
elseif(codePoint<=0xFFFF)
{
putchar((char)(0xE0|((codePoint>>12)&0xFF)));
putchar((char)(0x80|((codePoint>>6)&0x3F)));
putchar((char)(0x80|(codePoint&0x3F)));
}
elseif(codePoint<=0x10FFFF)
{
putchar((char)(0xF0|((codePoint>>18)&0xFF)));
putchar((char)(0x80|((codePoint>>12)&0x3F)));
putchar((char)(0x80|((codePoint>>6)&0x3F)));
putchar((char)(0x80|(codePoint&0x3F)));
}
else
assert(0);//不可能發生
}

G. 求大一C語言程序設計小項目.

樓上的和樓上的樓上的樓上是SB。
遼工大的吧。
需要盤文件輸入輸出、數組、循環、選擇、除主函數外至少要用到3個自定義函數。
你這分給的也太少了吧
以下(COPY):
這個就可以:
咱班都看過了。。(底下都寫上!!!!我記得有個地方他打錯了,交之前讓老師幫你改一改。這個交上去是很多個老師一起看!!)

1題目:學生信息管理系統
2程序要求:
學生信息錄入功能
用戶從鍵盤輸入每個學生的信息:學號、姓名、性別、數學、英語、政治、語文四門課成績。
可插入一個或多個學生信息到當前編輯的班級數據中。
文件保存功能
學生信息每一班存為一個數據文件,數據文件可在程序中打開、編輯和重新保存。
用戶輸入學生信息可隨時保存數據文件。
文件打開功能
程序只能對當前打開的數據文件進行編輯。
查詢功能
瀏覽所有學生信息。
按學號查詢學生信息。
按姓名查詢學生信息。
查詢一個班總成績和平均成績。
查詢一個班某一門課總成績和平均成績。
查詢某一門課分數段(<60,60-69,70-79,80-89,>90)學生數。
報表輸出功能
按學號輸出一個班學生信息:學號、姓名、性別、數學、英語、政治、語文成績、總成績,到屏幕和文件。
按總成績從高到低輸出學號、姓名信息。
註:以上功能以菜單形式供用戶使用,並有一定的容錯功能。
3開發語言環境:Macrosoft VC++6.0或Turbo C2.0
4數據結構:數組或鏈表
5程序源代碼要求:
函數名、變數名採用英文縮寫,使用匈牙利命名法進行自說明。
源代碼的書寫採用遞進格式。
程序行和程序段須有注釋。
#include "stdio.h" /*I/O函數*/
#include "stdlib.h" /*其它說明*/
#include "string.h" /*字元串函數*/
#include "conio.h" /*屏幕操作函數*/
#include "mem.h" /*內存操作函數*/
#include "ctype.h" /*字元操作函數*/
#include "alloc.h" /*動態地址分配函數*/
struct score
{
int mingci;
char xuehao[8];
char mingzi[20];
float score[6];
}data,info[1000];
int i,j,k=0;
char temp[20],ch;
FILE *fp,*fp1;

void shuru()
{
if((fp=fopen("s_score.txt","ab+"))==NULL)
{
printf("cannot open this file.\n");
getch();exit(0);
}
for(i=0;i<=1000;i++)
{
printf("\nPlease shuru xuehao:");
gets(data.xuehao);
printf("Please shuru mingzi:");
gets(data.mingzi);
printf("Please shuru yuwen score:");
gets(temp);data.score[0]=atof(temp);
printf("Please shuru shuxue score:");
gets(temp);data.score[1]=atof(temp);
printf("Please input yingyu score:");
gets(temp);data.score[2]=atof(temp);
printf("Please shuru wuli score:");
gets(temp);data.score[3]=atof(temp);
printf("Please shur huaxue score:");
gets(temp);data.score[4]=atof(temp);
data.score[5]=data.score[0]+data.score[1]+data.score[2]+data.score[3]+data.score[4];
fwrite(&data,sizeof(data),1,fp);
printf("another?y/n");
ch=getch();
if(ch=='n'||ch=='N')
break;
} fclose(fp);
}
void xianshi()
{
float s;int n;
if((fp=fopen("s_score.txt","rb+"))==NULL)
{
printf("Cannot reading this file.\n");
exit(0);
}
for(i=0;i<=1000;i++)
{
if((fread(&info[i],sizeof(info[i]),1,fp))!=1)
break;
}
printf("\nxuehao mingzi yuwen shuxue yingyu wuli huauxue zhongfen\n");
for(j=0,k=1;j<i;j++,k++)
{
info[j].mingci=k;
printf("%6s %8s %3.1f %3.1f %3.1f %3.1f %3.1f %3.1f\n",info[j].xuehao,info[j].mingzi,info[j].score[0],info[j].score[1],info[j].score[2],info[j].score[3],info[j].score[4],
info[j].score[5]);
}
getch();
fclose(fp);
}

void xiugai()
{
if((fp=fopen("s_score.txt","rb+"))==NULL||(fp1=fopen("temp.txt","wb+"))==NULL)
{
printf("Cannot open this file.\n");
exit(0);
}
printf("\nPLease shuru xiugai xuehao:");
scanf("%d",&i); getchar();
while((fread(&data,sizeof(data),1,fp))==1)
{
j=atoi(data.xuehao);
if(j==i)
{
printf("xuehao:%s\nmingzi:%s\n",data.xuehao,data.mingzi);
printf("Please shuru mingzi:");
gets(data.mingzi);
printf("Please shuru yuwen score:");
gets(temp);data.score[0]=atof(temp);
printf("Please shuru shuxue score:");
gets(temp);data.score[1]=atof(temp);
printf("Please input yingyu score:");
gets(temp);data.score[2]=atof(temp);
printf("Please input wuli score:");
gets(temp);data.score[3]=atof(temp);
printf("Please input huaxue score:");
gets(temp);data.score[4]=atof(temp);
data.score[5]=data.score[0]+data.score[1]+data.score[2]+data.score[3]+data.score[4];

} fwrite(&data,sizeof(data),1,fp1);
}
fseek(fp,0L,0);
fseek(fp1,0L,0);
while((fread(&data,sizeof(data),1,fp1))==1)
{
fwrite(&data,sizeof(data),1,fp);
}

fclose(fp);
fclose(fp1);
}
void chazhao()
{
if((fp=fopen("s_score.txt","rb"))==NULL)
{
printf("\nCannot open this file.\n");
exit(0);
}
printf("\nPLease shuru xuehao chakan:");
scanf("%d",&i);
while(fread(&data,sizeof(data),1,fp)==1)
{
j=atoi(data.xuehao);
if(i==j)
{
printf("xuehao:%s mingzi:%s\nyuwen:%f\n shuxue:%f\n yingyu:%f\n wuli:%f\n huaxue:%f\n ",data.xuehao,data.mingzi,data.score[0],data.score[1],data.score[2],data.score[3],data.score[4],data.score[5]);
}getch();
}
}
void shanchu()
{
if((fp=fopen("s_score.txt","rb+"))==NULL||(fp1=fopen("temp.txt","wb+"))==NULL)
{
printf("\nopen score.txt was failed!");
getch();
exit(0);
}
printf("\nPlease input ID which you want to del:");
scanf("%d",&i);getchar();
while((fread(&data,sizeof(data),1,fp))==1)
{
j=atoi(data.xuehao);
if(j==i)
{

printf("Anykey will delet it.\n");
getch();
continue;
}
fwrite(&data,sizeof(data),1,fp1);
}
fclose(fp);
fclose(fp1);
remove("s_score.txt");
rename("temp.txt","s_score.txt");
printf("Data delet was succesful!\n");
printf("Anykey will return to main.");
getch();
}
main()
{
while(1)
{
clrscr(); /*清屏幕*/
gotoxy(1,1); /*移動游標*/
textcolor(YELLOW); /*設置文本顯示顏色為黃色*/
textbackground(BLUE); /*設置背景顏色為藍色*/
window(1,1,99,99); /* 製作顯示菜單的窗口,大小根據菜單條數設計*/
clrscr();
printf("*************welcome to use student manage******************\n");
printf("*************************menu********************************\n");
printf("* ========================================================= * \n");
printf("* 1>shuru 2>xiugai * \n");
printf("* 3>shanchu 4>chazhao * \n");
printf("* 5>xianshi 6>exit * \n");
printf("* * \n");
printf("* --------------------------------------------------------- * \n");
printf(" Please input which you want(1-6):");
ch=getch();
switch(ch)
{
case '1':shuru();break;
case '2':xiugai(); break;
case '3':shanchu(); break;
case '4':chazhao(); break;
case '5':xianshi(); break;
case '6':exit(0);
default: continue;
}
}
}

H. 請問有哪些適合網路編程初學者的C語言方面的網路編程開源項目,...

如果是學習的話我推薦你去看看Linux、FreeBSD 系統中與網路有關的那些命令程序的代碼,比如ping、tcpmp等等,他們還有很多更強大的開源替代方案,比如mtr,都是學習的好材料。這些程序都追求把一件事情做到極致,所以往往結構清晰卻又不會過於簡單,你看看光是下載就有wget和curl兩大神器夠你折騰了。
Linux和FreeBSD的這類自帶命令雖然功能相同,但往往實現方式有很大差別,對比閱讀效果甚好。

I. 求C語言130行左右代碼的小項目入門級就行

//////洗牌-發牌////////
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
structPOKER
{
intnum;//A:1,J:11,Q:12,K:13小王:14大王:15
intcolor;//黑1,紅2,梅3,方4
}s[54];

voidoutput(intmode,intnum)//mode為0時表示顯示整副牌,為1時表示發牌
{//mode為1時:num的值表示每位玩家發多少張牌
if(mode==1&&(num<1||num>13))
{
printf(" 設置每位玩家的牌數出錯!");
return;
}
inti,player_count=1;
for(i=0;i<54;i++)
{
if(mode==1)
{
if(i%num==0)
{
if(player_count>4)
{
return;
}
printf(" 玩家%d:",player_count);
player_count++;
}
}
if(s[i].num==14)
{
putchar(1);
}
elseif(s[i].num==15)
{
putchar(2);
}
else
{
switch(s[i].num)
{
case1:putchar('A');break;
case11:putchar('J');break;
case12:putchar('Q');break;
case13:putchar('K');break;
default:printf("%d",s[i].num);
}
switch(s[i].color)
{
case1: putchar(6);break;
case2:putchar(3);break;
case3:putchar(5);break;
case4:putchar(4);break;
default:printf("");
}
}
printf("");
}
}

voidxipai()
{
inti,num,color;
memset(s,0,sizeof(structPOKER)*54);
intcount=0;
while(count<54)
{
num=rand()%15+1;
color=rand()%4+1;
intflag_skip=0;
for(i=0;i<54;i++)
{
if((s[i].num==num&&s[i].color==color)||(s[i].num==14&&num==14)||(s[i].num==15&&num==15))
{
flag_skip=1;
break;
}
}
if(flag_skip==1)
{
continue;
}
while(1)
{
i=rand()%54;
if(s[i].num==0)
{
s[i].num=num;
s[i].color=color;
count++;
break;
}
else
{
continue;
}
}
}
}

intmain()
{
intc,num=13;
srand((unsigned)time(0));
xipai();
while(1)
{
printf(" 已洗好,請選擇:(1:全部顯示2:發牌3:洗牌)");
fflush(stdin);
scanf("%d",&c);
if(c==1)
{
output(0,0);
}
elseif(c==3)
{
xipai();
}
elseif(c==2)
{
printf(" 每位發幾張:(1--13)");
while(1)
{
fflush(stdin);
scanf("%d",&num);
if(num>0&&num<14)
{
break;
}
else
{
printf(" 輸入錯誤,請重新輸入 每位發幾張:(1--13)");
}
}
output(1,num);
}
}
return0;
}