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





頁 : 1 [2] 3

ranger
2005-07-26, 01:10 AM
在亂數產生之前先
randomize();
第二次執行時就不會跟第一次一樣
另機率統計應該不是除i吧...總次數應該是n




小熊逛大街
2005-07-26, 01:15 AM
可以請問一下scanf("%d", &n)該如何使用呢?

ranger
2005-07-26, 01:41 AM
可以請問一下scanf("%d", &n)該如何使用呢?

這個函式的設計有些特別,它不能接受變數名,必須給它變數的地址。
常用的輸入格式如下:

如果要輸入一個 int 型態的數,用 %d
如果要輸入一個 unsigned int 型態的數,用 %u
如果要輸入一個 float 型態的數,用 %f
如果要輸入一個 double 型態的數,用 %lf (小寫的 L 和 F)
以上的數,假設都以十進制數字輸入。

如果要輸入一個 char 型態的數或字元,不要用 scanf(), 改用 getchar()
getchar() 會從標準輸入裝置一個一個字元地讀進來,它不會跳過任何字元。但是 scanf() 會自動跳過所有的連續空白,所謂空白包括了空格、跳格和折列指令 ('\n')。當第一次呼叫 scanf() 的時候,它跳過所有的連續空白,讀取第一個廣義字串,然後按照格式 (例如 %d 或 %f 等等) 解釋讀進來的字串,如果解釋成功了,就將它儲存到指定的地址,並且返回 1;如果沒有成功,就返回 0;如果讀進來的資料代表輸入檔案之結束,就返回 EOF。當第二次呼叫 scanf() 的時候,它就跳過第一個廣義字串之後的所有連續空白,讀取第二個廣義字串,依此類推。

HarrisonLin
2005-07-26, 01:53 AM
#include "stdlib.h"
#include <iostream>
#include "time.h"

using namespace std;

struct DiceNumAppearTimes {
int nNum;
int nTimes;
} numAppearTimes[6] = {1, 0, 2, 0, 3, 0, 4, 0, 5, 0, 6, 0};

void main() {
srand(time(0));

int nTimes = 0;

cout << "請輸入擲骰次數:";
cin >> nTimes;

int nIndex = 0, nNum = 0;

for(; nIndex < nTimes; ++nIndex) {
(numAppearTimes[(rand() % 6)].nTimes)++;
}

for(nIndex = 0; nIndex < 6; ++nIndex) {
cout << "Number " << numAppearTimes[nIndex].nNum << " : " << numAppearTimes[nIndex].nTimes << " times. (" << (numAppearTimes[nIndex].nTimes * 100 / nTimes) << "%)" << endl;
}
}

開發環境 : VC++ 6.

交作業前請儘量搞懂程式流程,以免一問三不知... :circle:

VicLin
2005-07-26, 01:57 AM
可以請問一下scanf("%d", &n)該如何使用呢?
問MSDN吧...
你以後遇到問題總不能都上網問別人吧?
Win32下的問題有一大堆都能在MSDN裡翻出來
只是有些比較難翻
不過 你要學著會找答案

怪盜基德
2005-07-26, 06:38 AM
可以請問一下scanf("%d", &n)該如何使用呢?

既然你說是要交作業 那應該就是在上課中
如果是在上課中 你的課本沒有講到 scanf 的用法 那那本可以丟了

小熊逛大街
2005-07-26, 09:25 AM
既然你說是要交作業 那應該就是在上課中
如果是在上課中 你的課本沒有講到 scanf 的用法 那那本可以丟了

小弟根本還沒買書也沒上過課,純粹只有上網看過其他人寫的筆記而已
還有作業根本不是我要交的好嗎,請搞清楚好嗎......................... :|||:

powmien
2005-07-26, 10:15 AM
明天要交作業了
可是我怎樣寫一直錯
有人可以幫我嗎?

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

謝謝

話說… 雖然這裡是「閒 話 家 常 灌 水 版 」但是問program這種東西是不是該去比較專業一點的地方問呢?
Delphi K.Top : http://delphi.ktop.com.tw/
Delphi、C/C++、Single chip、Analog/Digital.... etc. 那裡有很多台灣的高手能幫你解答的,而且您也能學會「該如何發問」。

VicLin
2005-07-26, 01:09 PM
既然你說是要交作業 那應該就是在上課中
如果是在上課中 你的課本沒有講到 scanf 的用法 那那本可以丟了
如果以C++入門的書來講 一般沒有scanf是很正常的
因為C++都建議使用cout 和 cin來取代原本的函數
:|||:

Picasso
2005-07-27, 01:14 PM
原PO只不過是要問個問題嘛!!怎麼一路看下來有些是冷嘲熱諷的言論??
如果有人覺的原PO是伸手牌的,大可不理,何必講那些有的沒的!! :mad: