![]() |
||
|
Senior Member
![]() ![]() ![]() 加入日期: Nov 2002
文章: 1,414
|
回覆: 回覆: 回覆: 會c++的大大幫個忙......
引用:
功力不夠....寫了80行... |
||||||||
|
|
|
New Member
加入日期: Jun 2003
文章: 8
|
回覆: 回覆: 回覆: 會c++的大大幫個忙......
引用:
說錯了.......... 假設六位數變數是i i除10~~~~得到的商設為j~~~~而餘數為第一位數的0-9 j除10~~~~得到的商設為x~~~而餘數為第二位數的0-9 ...........依此類推 而使用迴圈每次皆除以10再配合switch迴圈執行六次就可以做出來了
__________________
哇系金a......... |
|||
|
|
|
New Member
加入日期: Jun 2003
文章: 8
|
回覆: 回覆: 回覆: 回覆: 會c++的大大幫個忙......
引用:
不會丫 我寫應該也差不多吧....... 只是行的算法不一樣吧......... 不曉得可不可以邊輸入邊判斷...... 我覺得她們老師的用意是要讓她們有資料演算判斷的能力吧...........
__________________
哇系金a......... |
|
|
|
|
*停權中*
加入日期: Jun 2002 您的住址: 仙女銀河星系, 跨克星
文章: 1,791
|
就算用 basic
也可輕鬆寫出來, 25 列搞定.... 要不是真實模式有單一節區64k大小限制 不然一次產生10萬組也不是問題 本來想用Perl寫, 不過 QB 大家應該比較容易看懂意思 直接轉成 C 也應該比較方便吧 ![]() DECLARE FUNCTION rand! (start!, ends!) ' 自訂函數 DIM ss$(1 TO 1000) ' 宣告 1 ~ 1000 的字串陣列 DIM num(0 TO 9) ' 宣告 0 ~ 9 的數字陣列 ' 產生一大群長度介於 1~50 的數字字串組 (不固定長度) ' 產生組數大於1小於1000 (不固定組數) FOR a = 1 TO rand(1, 1000) FOR b = 1 TO rand(1, 50) ss$(a) = ss$(a) + CHR$(rand(48, 57)) NEXT NEXT ' 開始計算每組數字與其中數字出現的次數 FOR a1 = 1 TO a - 1 FOR b1 = 1 TO LEN(ss$(a1)) x = ASC(MID$(ss$(a1), b1, 1)) - 48 ' 把字串的數字轉成ASCII碼 num(x) = num(x) + 1 ' 再減 48 就會取得 "值" NEXT ' 用這個 "值" 當成陣列的索引, 直接 +1 NEXT ' 如此就可以達到統計出現次數的目的 ' 輸出結果 FOR z = 0 TO 9 PRINT z; "總共出現: "; num(z); "次" NEXT ' 自定函數 FUNCTION rand (start, ends) ' 設定起迄數字 RANDOMIZE TIMER ' 設定亂數種子 rand = INT(RND * (ends - start + 1)) + start ' 產生亂數 END FUNCTION |
|
|
|
Advance Member
![]() ![]() 加入日期: Nov 2002
文章: 427
|
回覆: 回覆: 回覆: 回覆: 會c++的大大幫個忙......
引用:
我是覺得他們老師說六位整數還不如讓他用字元陣列寫算了,新手剛近來要他處理那些C/C++的指標,我看大概會暴掉吧 我有的教授老說C/C++的指標其實是壞習慣,可是用的好高興啊 ,只要bug不是出現在指標的話![]() |
|
|
|
|
Golden Member
![]() ![]() ![]() ![]() 加入日期: Jan 2001
文章: 2,724
|
回覆: 回覆: 會c++的大大幫個忙......
引用:
剛剛想到以前用過陣列的方法.. 配合asdf77885511提到的做法.. 基本上一開始宣告的還是差不多,但原本用來計次數的10個變數count_1 ..~ _10 改成用陣列宣告 int count[10]; //大小為10,實際指標為數字0~9 // 原輸入數值除以10 ,餘數為 x , 則陣列 count[x]+=1; (餘數範圍一定在0~9) 得的商繼續除以10 ,餘數為 x , 則陣列 count[x]+=1; 迴圈總共作六次,就可以從陣列count[] 中得到每個數字出現過的次數. 這樣真的不需要30行..也不需要用到switch. 不過大家還是幫原作者想想C語言switch解決這題目的方式吧.. 畢竟先交出老師要求的方式比較重要.. ![]() |
|
|
|
|
*停權中*
加入日期: Jun 2002 您的住址: 仙女銀河星系, 跨克星
文章: 1,791
|
回覆: 回覆: 回覆: 會c++的大大幫個忙......
引用:
我上面貼的 QB 程式, 若換成 Perl 程式, 甚至可以壓縮到20列以內 若以 Switch 也可以配合長整數陣列, 而不要宣告很多個長整數 這樣就會使程式很有彈性, 而且易於修改 ![]() 不過這種Switch語法.... Perl 寫不出來.... Perl 沒有這種語法.....(至少我沒看過) ps. 我不會 C++ =.=, 目前正努力學習 Gtk2-Perl 中 用除法求餘數雖然可以, 但數值若很長 給你50位數, 馬上死在路邊 ![]() 此文章於 2003-10-24 01:26 AM 被 shukae 編輯. |
|
|
|
|
*停權中*
加入日期: Jun 2002 您的住址: 仙女銀河星系, 跨克星
文章: 1,791
|
回覆: 回覆: 回覆: 回覆: 會c++的大大幫個忙......
---刪---
|
|
|
|
New Member
加入日期: Jun 2003
文章: 8
|
回覆: 回覆: 回覆: 回覆: 會c++的大大幫個忙......
引用:
做迴圈就好了丫...........跟位數長不長沒有關係............
__________________
哇系金a......... |
|
|
|
|
*停權中*
加入日期: Jun 2002 您的住址: 仙女銀河星系, 跨克星
文章: 1,791
|
回覆: 回覆: 回覆: 回覆: 回覆: 會c++的大大幫個忙......
引用:
嗯..... 我的意思是說, 因為 C 語言有變數型態的定義 我不曉得C語言能定義的整數數值能有多大啦~~~ 但不論如何都有位數的極限, 數值處理的位數長度會受限制 所以若以接受數值輸入的方法, 最好採用字串變數 用字串變數與ASCII碼之間的對應關係來做 才不會產生溢位的問題 ![]() |
|
|
|