PCDVD數位科技討論區
PCDVD數位科技討論區   註冊 常見問題 標記討論區為已讀

回到   PCDVD數位科技討論區 > 其他群組 > 七嘴八舌異言堂
帳戶
密碼
 

  回應
 
主題工具
REXMAX
New Member
 
REXMAX的大頭照
 

加入日期: Aug 2003
文章: 9
會c++的大大幫個忙......

輸入一個有六位數的正整數,利用Switch計算0~9每一個數字出現之機率

這題是我們的作業......我ㄇ想破頭想不出來...........
可悲的大一新生=.=
     
      
舊 2003-10-24, 12:01 AM #1
回應時引用此文章
REXMAX離線中  
shukae
*停權中*
 
shukae的大頭照
 

加入日期: Jun 2002
您的住址: 仙女銀河星系, 跨克星
文章: 1,791
回覆: 會c++的大大幫個忙......

引用:
Originally posted by REXMAX
輸入一個有六位數的正整數,利用Switch計算0~9每一個數字出現之機率

這題是我們的作業......我ㄇ想破頭想不出來...........
可悲的大一新生=.=


=.= 這種問題我國中就會做了 =.=
就算是給你不定位數的正整數或是小數
甚至一次給很多組不同位數的數字
更進一步每次的數字組數都不相同
其實也都可以輕易做出來

我是不會 C++ 啦
不過我剛剛查了一下 Switch 的的語法
我發現跟 QB 的 SELECT CASE 很像
我只能說....[這是很白癡的做法]......

如果哪一天要統計10萬組0~999的數字
計算每個數字的出現次數與機率
還真的用 Switch 寫1000個case嗎???
不要鬧了
叫老師回家啦.....

等一下我寫一段給你看
完全不需要使用 Switch 或類似的語法
用陣列與迴圈做做得到了 ^^
 
舊 2003-10-24, 12:16 AM #2
回應時引用此文章
shukae離線中  
TeamWork
Basic Member
 

加入日期: Jan 2003
文章: 12
先想想如何取得每一位數的值

再想想switch的作用何在

撰寫程式不在於結果....而是在思考的過程

所以會有"技法人人會變, 巧妙各有不同"

加油吧!!
舊 2003-10-24, 12:19 AM #3
回應時引用此文章
TeamWork離線中  
TeamWork
Basic Member
 

加入日期: Jan 2003
文章: 12
回覆: 回覆: 會c++的大大幫個忙......

雖然是很白吃的作法...但這是老師導引學生的方式

所謂萬事起頭難...總是得將基礎打好吧

給他魚吃....不如給他釣竿

引用:
Originally posted by shukae
=.= 這種問題我國中就會做了 =.=
就算是給你不定位數的正整數或是小數
甚至一次給很多組不同位數的數字
更進一步每次的數字組數都不相同
其實也都可以輕易做出來

我是不會 C++ 啦
不過我剛剛查了一下 Switch 的的語法
我發現跟 QB 的 SELECT CASE 很像
我只能說....[這是很白癡的做法]......

如果哪一天要統計10萬組0~999的數字
計算每個數字的出現次數與機率
還真的用 Switch 寫1000個case嗎???
不要鬧了
叫老師回家啦.....

等一下我寫一段給你看
完全不需要使用 Switch 或類似的語法
用陣列與迴圈做做得到了 ^^
舊 2003-10-24, 12:22 AM #4
回應時引用此文章
TeamWork離線中  
shukae
*停權中*
 
shukae的大頭照
 

加入日期: Jun 2002
您的住址: 仙女銀河星系, 跨克星
文章: 1,791
回覆: 回覆: 回覆: 會c++的大大幫個忙......

引用:
Originally posted by TeamWork
雖然是很白吃的作法...但這是老師導引學生的方式

所謂萬事起頭難...總是得將基礎打好吧

給他魚吃....不如給他釣竿


Switch 這種語法是用比較簡單的場合
或是需要另外呼叫一些副程式才用的
要單純的統計數據機率, 用 Switch或類似的語法, 實在很笨....
我覺得老師出這種題目並不恰當, 學生會被誤導.....
舊 2003-10-24, 12:29 AM #5
回應時引用此文章
shukae離線中  
銀色三冠王IS
Golden Member
 
銀色三冠王IS的大頭照
 

加入日期: Jan 2001
文章: 2,724
首先一定要先宣告一個長整數用來輸入數值,(記得C語言裡面正整數範圍只65535,超過的要用長整數 long int宣告)

再來就是數值轉成字串的指令,(自己查一下,)

還要設定10個整數變數(例如count_1, count_2 ...) ,分別代表0~9出現的次數.

跑迴圈用switch來做機率統計.. 比對輸入的字串,出現1的話, count_1 = count_1 +1,以此類推.

至於迴圈要用for還是while 就自行決定吧..

如果有錯,請其他高手指正..
舊 2003-10-24, 12:37 AM #6
回應時引用此文章
銀色三冠王IS離線中  
REXMAX
New Member
 
REXMAX的大頭照
 

加入日期: Aug 2003
文章: 9
引用:
Originally posted by 銀色三冠王IS
首先一定要先宣告一個長整數用來輸入數值,(記得C語言裡面正整數範圍只65535,超過的要用長整數 long int宣告)

再來就是數值轉成字串的指令,(自己查一下,)

還要設定10個整數變數(例如count_1, count_2 ...) ,分別代表0~9出現的次數.

跑迴圈用switch來做機率統計.. 比對輸入的字串,出現1的話, count_1 = count_1 +1,以此類推.

至於迴圈要用for還是while 就自行決定吧..

如果有錯,請其他高手指正..


謝謝各為大大指導...但是我還是不懂........
我們目前只教到switch......
之前也沒有任何程式的基礎..........連vb也沒有
因為這些普通高中不會教..........
舊 2003-10-24, 12:43 AM #7
回應時引用此文章
REXMAX離線中  
以月為影
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 被 以月為影 編輯.
舊 2003-10-24, 12:43 AM #8
回應時引用此文章
以月為影離線中  
jerrymic
Basic Member
 

加入日期: Sep 2001
您的住址: 苗栗縣
文章: 17
資料型態可以表示的範圍
int 4bytes
long 8bytes

你可以用一個loop結構
裡面使用switch即可
每一個case使用一個個別的counter
這題就ok la
舊 2003-10-24, 12:43 AM #9
回應時引用此文章
jerrymic離線中  
asdf77885511
New Member
 

加入日期: Jun 2003
文章: 8
回覆: 回覆: 會c++的大大幫個忙......

引用:
Originally posted by shukae
=.= 這種問題我國中就會做了 =.=
就算是給你不定位數的正整數或是小數
甚至一次給很多組不同位數的數字
更進一步每次的數字組數都不相同
其實也都可以輕易做出來

我是不會 C++ 啦
不過我剛剛查了一下 Switch 的的語法
我發現跟 QB 的 SELECT CASE 很像
我只能說....[這是很白癡的做法]......

如果哪一天要統計10萬組0~999的數字
計算每個數字的出現次數與機率
還真的用 Switch 寫1000個case嗎???
不要鬧了
叫老師回家啦.....

等一下我寫一段給你看
完全不需要使用 Switch 或類似的語法
用陣列與迴圈做做得到了 ^^

指標加迴圈加switch可以寫得出來.............
另外也可以不用指標用除的就可以將商數和餘數分離的方式也可以..........
六位數除100000~~~得到的商就是第六位數~~~
六位數除10000~~~~得到的商就是第五位數~~~依次類推.........
用除法外加迴圈加switch也可以寫得出來................
這個程式我覺得應該不會超過三十行...........
__________________
哇系金a.........
舊 2003-10-24, 12:45 AM #10
回應時引用此文章
asdf77885511離線中  


    回應


POPIN
主題工具

發表文章規則
不可以發起新主題
不可以回應主題
不可以上傳附加檔案
不可以編輯您的文章

vB 代碼打開
[IMG]代碼打開
HTML代碼關閉



所有的時間均為GMT +8。 現在的時間是05:57 PM.


vBulletin Version 3.0.1
powered_by_vbulletin 2026。