c语言应用题

来源:百度知道 编辑:UC知道 时间:2024/06/08 23:57:14
分发13张不同数的牌,从1到13表示每张牌的大小(1
表示A、11表示J、12表示Q、13表示K),编一程序,让计算机模似发牌,每发一张牌就显示出来。(不能有相同的数)最后的这个要求我无法完成。我现在已经做成这个样子了:

/* 07-3 */

#include <stdio.h?
#include <stdlib.h>
main()
{
int x,y,num=32,i=22,n=0;
clrscr();

go1:
for(y=1;y<=22;y+=2)
{
gotoxy(77,24); putch(16); printf("%d",num); putch(17);

gotoxy(1,y);
printf("%2d %2d %2d %2d %2d %2d %2d %2d %2d %2d %2d %2d %2d \n"
,random(13),random(13),random(13),random(13),random(13),random(13),
random(13),random(13),random(13),random(13),random(13),random(13),random(13));

getch();
num--;

n++;
if(i==n*2)
{
i=n*4;
clrscr();
goto go1;
}
}
printf("\nBe ready to EXIT ...");

getch();
}

#include <stdlib.h>
#include <stdio.h>
#include <time.h>

void main( void )
{
int i,n[13],count=0,flag;

srand( (unsigned)time( NULL ) );
for(i=0;i<13;i++) n[i]=0;
while(count<13)
{
n[count]=rand()%13+1;
flag=0;
for(i=0;i<count;i++)
if(n[i]==n[count])
{
flag=1;
break;
}
if(flag) continue;
else
{
count++;
printf("%d ",n[i]);
}
}
}

int x,y,num=32,i=22,n=0;
多加3个
int x,y,num=32,i=22,n=0,use[14],a,b;
还有这个
printf("%2d %2d %2d %2d %2d %2d %2d %2d %2d %2d %2d %2d %2d \n"
,random(13),random(13),random(13),random(13),random(13),random(13),
random(13),random(13),random(13),random(13),random(13),random(13),random(13));
改成
for (a=0;a<=13;a++)
use[a]=0;
for (a=0;a<13;a++)
{
b=ran