![]() |
||
|
New Member
加入日期: Aug 2003
文章: 9
|
會c++的大大幫個忙......
輸入一個有六位數的正整數,利用Switch計算0~9每一個數字出現之機率
這題是我們的作業......我ㄇ想破頭想不出來........... 可悲的大一新生=.= |
|||||||
|
|
|
*停權中*
加入日期: Jun 2002 您的住址: 仙女銀河星系, 跨克星
文章: 1,791
|
回覆: 會c++的大大幫個忙......
引用:
=.= 這種問題我國中就會做了 =.= 就算是給你不定位數的正整數或是小數 甚至一次給很多組不同位數的數字 更進一步每次的數字組數都不相同 其實也都可以輕易做出來 我是不會 C++ 啦 不過我剛剛查了一下 Switch 的的語法 我發現跟 QB 的 SELECT CASE 很像 我只能說....[這是很白癡的做法]...... 如果哪一天要統計10萬組0~999的數字 計算每個數字的出現次數與機率 還真的用 Switch 寫1000個case嗎??? 不要鬧了 叫老師回家啦..... 等一下我寫一段給你看 完全不需要使用 Switch 或類似的語法 用陣列與迴圈做做得到了 ^^ |
|||
|
|
|
Basic Member
加入日期: Jan 2003
文章: 12
|
先想想如何取得每一位數的值
再想想switch的作用何在 撰寫程式不在於結果....而是在思考的過程 所以會有"技法人人會變, 巧妙各有不同" 加油吧!! |
|
|
|
Basic Member
加入日期: Jan 2003
文章: 12
|
回覆: 回覆: 會c++的大大幫個忙......
雖然是很白吃的作法...但這是老師導引學生的方式
所謂萬事起頭難...總是得將基礎打好吧 給他魚吃....不如給他釣竿 引用:
|
|
|
|
|
*停權中*
加入日期: Jun 2002 您的住址: 仙女銀河星系, 跨克星
文章: 1,791
|
回覆: 回覆: 回覆: 會c++的大大幫個忙......
引用:
Switch 這種語法是用比較簡單的場合 或是需要另外呼叫一些副程式才用的 要單純的統計數據機率, 用 Switch或類似的語法, 實在很笨.... 我覺得老師出這種題目並不恰當, 學生會被誤導..... |
|
|
|
|
Golden Member
![]() ![]() ![]() ![]() 加入日期: Jan 2001
文章: 2,724
|
首先一定要先宣告一個長整數用來輸入數值,(記得C語言裡面正整數範圍只65535,超過的要用長整數 long int宣告)
再來就是數值轉成字串的指令,(自己查一下,) 還要設定10個整數變數(例如count_1, count_2 ...) ,分別代表0~9出現的次數. 跑迴圈用switch來做機率統計.. 比對輸入的字串,出現1的話, count_1 = count_1 +1,以此類推. 至於迴圈要用for還是while 就自行決定吧.. 如果有錯,請其他高手指正.. ![]() |
|
|
|
New Member
加入日期: Aug 2003
文章: 9
|
引用:
謝謝各為大大指導...但是我還是不懂........ 我們目前只教到switch...... 之前也沒有任何程式的基礎..........連vb也沒有 因為這些普通高中不會教.......... |
|
|
|
|
Senior Member
![]() ![]() ![]() 加入日期: Nov 2002
文章: 1,414
|
之前受大家幫忙~來回饋一下
小弟也是新手~方法很濫不要罵我 #include<iostream> using std::cin; using std::cout; int main() { int p; int n=0; double a=0; double b=0; double c=0; double d=0; double e=0; double f=0; double g=0; double h=0; double i=0; double j=0; cout<<"Please enter 6 number : "; while (n < 6){ switch (p=cin.get()) { case '1': ++a; break; case '2': ++b; break; case '3': ++c; break; case '4': ++d; break; case '5': ++e; break; case '6': ++f; break; case '7': ++g; break; case '8': ++h; break; case '9': ++i; break; case '0': ++j; break; } n++; } cout<<"The probability of the number 1 :"<<a/6*100<<"%\n" <<"The probability of the number 2 ::"<<b/6*100<<"%\n" <<"The probability of the number 3 ::"<<c/6*100<<"%\n" <<"The probability of the number 4 ::"<<d/6*100<<"%\n" <<"The probability of the number 5 ::"<<e/6*100<<"%\n" <<"The probability of the number 6 ::"<<f/6*100<<"%\n" <<"The probability of the number 7 ::"<<g/6*100<<"%\n" <<"The probability of the number 8 ::"<<h/6*100<<"%\n" <<"The probability of the number 9 ::"<<i/6*100<<"%\n" <<"The probability of the number 0 ::"<<j/6*100<<"%\n"; return 0; } 此文章於 2003-10-24 12:50 AM 被 以月為影 編輯. |
|
|
|
Basic Member
加入日期: Sep 2001 您的住址: 苗栗縣
文章: 17
|
資料型態可以表示的範圍
int 4bytes long 8bytes 你可以用一個loop結構 裡面使用switch即可 每一個case使用一個個別的counter 這題就ok la |
|
|
|
New Member
加入日期: Jun 2003
文章: 8
|
回覆: 回覆: 會c++的大大幫個忙......
引用:
指標加迴圈加switch可以寫得出來............. 另外也可以不用指標用除的就可以將商數和餘數分離的方式也可以.......... 六位數除100000~~~得到的商就是第六位數~~~ 六位數除10000~~~~得到的商就是第五位數~~~依次類推......... 用除法外加迴圈加switch也可以寫得出來................ 這個程式我覺得應該不會超過三十行...........
__________________
哇系金a......... |
|
|
|