PCDVD數位科技討論區

PCDVD數位科技討論區 (https://www.pcdvd.com.tw/index.php)
-   七嘴八舌異言堂 (https://www.pcdvd.com.tw/forumdisplay.php?f=12)
-   -   會c++的大大幫個忙...... (https://www.pcdvd.com.tw/showthread.php?t=261232)

REXMAX 2003-10-24 12:01 AM

會c++的大大幫個忙......
 
輸入一個有六位數的正整數,利用Switch計算0~9每一個數字出現之機率

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

shukae 2003-10-24 12:16 AM

回覆: 會c++的大大幫個忙......
 
引用:
Originally posted by REXMAX
輸入一個有六位數的正整數,利用Switch計算0~9每一個數字出現之機率

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


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

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

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

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

TeamWork 2003-10-24 12:19 AM

先想想如何取得每一位數的值

再想想switch的作用何在

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

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

加油吧!!

TeamWork 2003-10-24 12:22 AM

回覆: 回覆: 會c++的大大幫個忙......
 
雖然是很白吃的作法...但這是老師導引學生的方式

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

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

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

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

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

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

shukae 2003-10-24 12:29 AM

回覆: 回覆: 回覆: 會c++的大大幫個忙......
 
引用:
Originally posted by TeamWork
雖然是很白吃的作法...但這是老師導引學生的方式

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

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


Switch 這種語法是用比較簡單的場合
或是需要另外呼叫一些副程式才用的
要單純的統計數據機率, 用 Switch或類似的語法, 實在很笨....
我覺得老師出這種題目並不恰當, 學生會被誤導.....

銀色三冠王IS 2003-10-24 12:37 AM

首先一定要先宣告一個長整數用來輸入數值,(記得C語言裡面正整數範圍只65535,超過的要用長整數 long int宣告)

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

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

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

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

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

REXMAX 2003-10-24 12:43 AM

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

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

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

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

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

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


謝謝各為大大指導...但是我還是不懂........
我們目前只教到switch......
之前也沒有任何程式的基礎..........連vb也沒有
因為這些普通高中不會教..........

以月為影 2003-10-24 12:43 AM

之前受大家幫忙~來回饋一下

小弟也是新手~方法很濫不要罵我

#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;

}

jerrymic 2003-10-24 12:43 AM

資料型態可以表示的範圍
int 4bytes
long 8bytes

你可以用一個loop結構
裡面使用switch即可
每一個case使用一個個別的counter
這題就ok la

asdf77885511 2003-10-24 12:45 AM

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

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

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

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

指標加迴圈加switch可以寫得出來.............
另外也可以不用指標用除的就可以將商數和餘數分離的方式也可以..........
六位數除100000~~~得到的商就是第六位數~~~
六位數除10000~~~~得到的商就是第五位數~~~依次類推.........
用除法外加迴圈加switch也可以寫得出來................
這個程式我覺得應該不會超過三十行...........


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

vBulletin Version 3.0.1
powered_by_vbulletin 2026。