?? playing card.cpp
字號:
//缺點是不止52次隨機
/*#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <ctime>
using namespace std;
void playing(int *, int);
int main()
{
int a[13]={1,2,3,4,5,6,7,8,9,10,11,12,13};
int b[13]={1,2,3,4,5,6,7,8,9,10,11,12,13};
int c[13]={1,2,3,4,5,6,7,8,9,10,11,12,13};
int d[13]={1,2,3,4,5,6,7,8,9,10,11,12,13};
int cn0=0, cn1=0, cn2=0, cn3=0;
srand( time(0) );
for (int count=0; count<52; count++){
int rn;
rn=rand()%4;
switch (rn){
case 0://每個case下的語句完全可以再實現成一個函數
if(cn0 < 13){
cout<<"第 "<<setw(2)<<(count+1)<<" 張牌是紅桃: ";
playing(a, cn0);
}
else
count--;
cn0++;
break;
case 1:
if(cn1 < 13){
cout<<"第 "<<setw(2)<<(count+1)<<" 張牌是方塊: ";
playing(b, cn1);
}
else
count--;
cn1++;
break;
case 2:
if(cn2 < 13){
cout<<"第 "<<setw(2)<<(count+1)<<" 張牌是黑桃: ";
playing(c, cn2);
}
else
count--;
cn2++;
break;
case 3:
if(cn3 < 13){
cout<<"第 "<<setw(2)<<(count+1)<<" 張牌是梅花: ";
playing(d, cn3);
}
else
count--;
cn3++;
break;
}
}
system( "PAUSE" );
return 0;
}
void playing(int *card,int count)
{//這里面不能循環
int rn, t;
rn=rand()%(13-count);
t=card[rn+count];
card[rn+count]=card[count];
card[count]=t;
cout << setw(2) << card[count]<<endl;
}*/
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <ctime>
using namespace std;
void playing(int *, int, int *);
int main()
{
int a[13]={1,2,3,4,5,6,7,8,9,10,11,12,13};
int b[13]={1,2,3,4,5,6,7,8,9,10,11,12,13};
int c[13]={1,2,3,4,5,6,7,8,9,10,11,12,13};
int d[13]={1,2,3,4,5,6,7,8,9,10,11,12,13};
int cn0=0, cn1=0, cn2=0, cn3=0, count=0;
int *countPtr=&count;
srand( time(0) );
for (; count<52; count++){
int rn;
rn=rand()%4;
switch (rn){
case 0:
if(cn0 < 13)
cout<<"第 "<<setw(2)<<(count+1)<<" 張牌是紅桃: ";
playing(a, cn0, countPtr);//如果按值傳遞count,則在playing函數中修改不了它的值
cn0++;
break;
case 1:
if(cn1 < 13)
cout<<"第 "<<setw(2)<<(count+1)<<" 張牌是方塊: ";
playing(b, cn1, countPtr);
cn1++;
break;
case 2:
if(cn2 < 13)
cout<<"第 "<<setw(2)<<(count+1)<<" 張牌是黑桃: ";
playing(c, cn2, countPtr);
cn2++;
break;
case 3:
if(cn3 < 13)
cout<<"第 "<<setw(2)<<(count+1)<<" 張牌是梅花: ";
playing(d, cn3, countPtr);
cn3++;
break;
}
}
system( "PAUSE" );
return 0;
}
void playing(int *card,int count, int *ac)
{//這里面不能循環
int rn, t;
if(count < 13){
rn=rand()%(13-count);
t=card[rn+count];
card[rn+count]=card[count];
card[count]=t;
cout << setw(2) << card[count]<<endl;
}
else
*ac=*ac-1;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -