我已完成整個代碼,用戶可以在兩個骰子total number of rolls
中選擇number of sides
,並打印出histogram of the values rolled
。我不知道如何使每個值的frequency
出現在直方圖旁邊的各自的數字。我有我認爲是所有相關的代碼,如果不是,我會增加更多。我瀏覽過這個網站,發現主要是matlab code
。骰子滾動模擬器 - 直方圖中每個滾動的輸出頻率
case 2:
printf("\nEnter number of trials: ");
fgets(runinput, sizeof(runinput), stdin);
sscanf(runinput,"%d",&n);
if (n > nmax){
printf("Your choice of %d has exceeded the max value of trials. Value set to max of %d.",n,nmax);
n = nmax;
printf("\nRolling dice...");
tried++;
}
else{
printf("\nRolling dice...");
}
for (i=0; i <= s; i++){
a[i] = 0;
}
for (i=0; i <=n-1 ; i++){
d1 = rand()%s;
d2 = rand()%s;
result = d1+d2;
x = random()%(2*s-1);
a[result]++;
results[i] = a;
}
break;
case 3:
if (tried != 0){
printf("\nPrinting histogram...\n");
for (i=0; i <= 2*s-2; i++){
freq = results[i];
printf("%5i| %10i - ", i+2, freq);
for (j=0; j < a[i]+2; j++){
while (a[i] > 0){
if (a[i] >= 100){
printf("X");
a[i]=a[i]-100;
}
else if (a[i]>=10){
printf("x");
a[i]=a[i]-10;
}
else {
printf("*");
a[i]=a[i]-1;
}
}
}
printf("\n");
}
puts("X = 100, x = 10, * = 1\n");
break;
所有我想補充的是,其中出現的直方圖每個號碼的頻率,任何幫助和解釋表示讚賞,我只CS239
所以我還在學習。先謝謝你!
編輯:我需要什麼代碼來使用數組來計算每個數字的頻率?我有時會發現人們在做類似的事情,但它的編程技術要比我知道如何使用或將會被我的教師接受的程度更高。
好吧謝謝。我以前從來沒有使用過$或foreach()函數,但我不完全理解這將如何合併,但我會嘗試 – 2014-10-28 02:23:37
男孩我搞砸了!! :( – Solrac 2014-10-28 03:50:19
哈哈我以爲這看起來很混亂!不用擔心,我很感激你花時間嘗試和幫助初學者。 – 2014-10-28 21:48:18