⑴ 求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;
}
⑵ 求一份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)!='