#include
#include
#include
int ss(),aa();
int main()
{int a,b,c,d,e,f,ss(),aa();
srand(time(NULL));
printf("第一張牌\n",aa(),ss());
printf("第二張牌\n",aa(),ss());
printf("兩張牌的總和\n",aa(),ss());
//如果兩張牌加起來不超過15發第三張牌
printf("第三張牌\n",aa(),ss());
printf("三張牌的總和\n",aa(),ss());
system("PAUSE");
return 0;
}
int ss()
{int i,a,c,b,d,k;
for (i=1;i<=52;i++)
b=rand()%4;
switch (b)
{
case 1:
c="黑桃";
break;
case 2:
c="方塊";
break;
case 3:
c="紅心";
break;
case 0:
c="梅花";
break;
}
printf("%3s",c);
return k;
}
int aa()
{int i,a,c,b,d,k;
for (i=1;i<53;i++)
a=1+(rand()%13);
printf("%3d\t",a);
return k;
}
我這程式是想要把我付程式裡面的點數數值擷取出來
可是我沒辦法解取
所以我把我的步驟用printf寫出來
想要大家幫我的就是那些部份
如果大大絕得我寫的不好或者是沒辦法改
請大大們用自己的方法寫給我
我已經想了一個禮拜都想不出方法
拜託大大好新幫忙謝謝
2006-12-13 20:34:49 · 2 個解答 · 發問者 ﹛﹛mimic-5258﹛﹛ 3 in 電腦與網際網路 ➔ 程式設計
我把一些不需要的拿掉了, 尤其是在 aa, ss 內的 for 迴路.
要傳值一定用指標 (這你就需要花很多時間研究了, 因為這是 C 的重點, 弄不好, 很容易就會毀了系統).
另外 ss 內的 c 是整數變數, 不應該傳字串給它.
所以我把它改成英文, 你可以在主程式內再改回中文.
當然, 副程式也可以傳回字串, 不過那需要雙重指標 (**suit).
等你先熟悉了單一指標後再研究吧.
#include
#include
int ss(),aa();
int main()
{
int a,b,c;
char x;
srand(time(NULL));
aa(&a); /* 傳 a 的位址 */
ss(&x); /* 傳 x 的位址 */
printf("1st:[%d%c]\n",a,x);
c = a;
aa(&a);
ss(&x);
printf("2nd:[%d%c]\n",a,x);
c += a;
printf("sum = %d\n\n",c);
if (c <=15)
{
aa(&a);
ss(&x);
printf("3rd:[%d%c]\n",a,x);
c += a;
printf("sum = %d\n",c);
}
system("PAUSE");
return 0;
}
int ss(suit)
char *suit;
{
int b,c;
b=rand()%4;
switch (b)
{
case 1:
c='S';
break;
case 2:
c='D';
break;
case 3:
c='H';
break;
case 0:
c='C';
break;
}
*suit = (char)c;
return 0;
}
int aa(num)
int *num;
{
*num=1+(rand()%13);
return 0;
}
2006-12-14 00:33:16 · answer #1 · answered by JJ 7 · 0⤊ 0⤋
高手
請問你還在嗎
你還在嗎
我想請問一下
如果我陷再要用的牌數有四副牌
那我要怎麼去控制她出過的牌不會重複出現
還有
我那個if說錯意思了
因該是每張牌超過10點都要以十點來計算
我有改了一下
可是都改不成功
還有*num的(*)這個代表什麼意思阿
2006-12-14 15:57:30 補充:
其實我是要寫百家樂程式當做專題報告
可是卡在發牌這個部份
我得需要就是上面那一些再請妳幫忙謝謝
2006-12-14 10:55:40 · answer #2 · answered by ﹛﹛mimic-5258﹛﹛ 3 · 0⤊ 0⤋