【求助】c++,骰子寫不出來@@



贊助商連結


頁 : [1] 2 3

Age
2005-07-24, 11:32 AM
明天要交作業了
可是我怎樣寫一直錯
有人可以幫我嗎?

題目是:請使用亂數寫一個骰子程式,每次執行結果必需不能重複。
執行結果:
請輸入骰的次數:
骰子一的出現次數為__次,機率為____%
骰子二的出現次數為__次,機率為____%
依此類堆

謝謝

贊助商連結


怪盜基德
2005-07-24, 02:39 PM
這應該是 random 的基本題目吧?
把課本範例拿出來看一看 自己寫一段上來再說吧!

小熊逛大街
2005-07-24, 03:25 PM
自己刪掉...

ellery
2005-07-24, 11:08 PM
如果樓主真的是一直寫都錯, 怎不把自己寫的程式碼貼上來請大家指正?
很明顯的只是上來看有沒有人好心幫你寫出來以便拿去抄抄交差了事,
看來又是個網路乞丐!

Age
2005-07-25, 02:35 AM
我不是你說的人
只是我寫的很爛而已
要我貼也可以啊

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


int main()
{
int n = 0, i = 0, RndNum;
int point1 = 0, point2 = 0, point3 = 0, point4 = 0, point5 = 0, point 6 = 0;

printf("請輸入骰的次數: ");
scanf("%d", &n);

if (n <= 0)
{
printf("最少請輸入一次\n");
return 1;
}

for (i=0;i<n;i++)
{
RndNum = rand() % 6 + 1;
printf("%d\n", RndNum);

if (RndNum == 1)
point1++;

if (RndNum == 2)
point2++;
}

printf("骰子一的出現次數為 %d 次,機率為 %d %%\n", point1, point1 * 100 / i);
printf("骰子二的出現次數為 %d 次,機率為 %d %%\n", point2, point2 * 100 / i);
printf("骰子三的出現次數為 %d 次,機率為 %d %%\n", point3, point3 * 100 / i);
printf("骰子四的出現次數為 %d 次,機率為 %d %%\n", point4, point4 * 100 / i);
printf("骰子五的出現次數為 %d 次,機率為 %d %%\n", point5, point5 * 100 / i);
printf("骰子六的出現次數為 %d 次,機率為 %d %%\n", point6, point6 * 100 / i);

system("pause");
return 0;
}

可以麻煩你們幫我看那邊有錯嗎?
謝謝

VicLin
2005-07-25, 02:46 AM
沒有人第一天寫就寫得很好
我只能說 這種東西看自己囉
別人頂多只能指導
成與敗都在你自己

ranger
2005-07-25, 10:57 AM
題目有點奇怪?
有幾個骰子?若每次執行不能重覆
那不是1~6只能出現一次?
出現過的不算...那機率是各1/6嗎?
還是重復出現的不算但也列入機率統計?

Age
2005-07-25, 11:00 AM
我的題目是有一顆骰子,六面六個數字
我說執行結果不能重復的意思是說
如果第一次執行時,一出現了一百次
那第二次執行時,一出現結果不能跟第一次一樣

每次骰子的點數都可以重復沒有關係的

Howard
2005-07-26, 12:13 AM
我的題目是有一顆骰子,六面六個數字
我說執行結果不能重復的意思是說
如果第一次執行時,一出現了一百次
那第二次執行時,一出現結果不能跟第一次一樣

每次骰子的點數都可以重復沒有關係的

那就把亂數種子設成隨系統時間改變

srand(time(NULL));

就行了吧,不知有沒有了解你的意思?

我看你的程式好像沒設亂數種子

P.S.我也是新手,而且我RUN不動你的程式,所以用猜的...

---------------------------------------------------------------

我試過了,你設一下亂數種子應該OK了

(否則答案都一樣)

還有你定義的point6多個空格

希望有幫到你^.^

小熊逛大街
2005-07-26, 12:59 AM
自己刪掉...