- 最後登錄
- 2024-5-24
- 在線時間
- 3188 小時
- 註冊時間
- 2004-8-20
- 閱讀權限
- 20
- 精華
- 0
- UID
- 12056
- 帖子
- 474
- 積分
- 967 點
- 潛水值
- 31819 米
| 成為伊莉的版主,你將獲得更高級和無限的權限。把你感興趣的版面一步步地發展和豐盛,那種滿足感等著你來嚐嚐喔。 老實說~看完您的題目我嘗試寫了一下~之後看您的程式碼...貌似沒甚麼兩樣....只是您的y是怎麼回事?
因為您沒提到您是否有學到陣列....所以我給了兩版...另外一版用switch....雖然您也沒說您是否有學過switch...只是...因為我實在不想瘋狂的打else if...上網去看一下switch和if else if就知道關聯與差別了
陣列版...如下- int main()
- {
- int sum_buf[10] = { } ; //初始化而沒給值則為0...至少我在VC++上是如此~看不慣則用for迴圈歸0~將來懂memset這函式時就不用靠for了
- //另外備註~或許您已經看過有人是寫 { 0 }...其實他們也僅僅只是定義了陣列第一個空間值為0...後面依舊沒去定義
- int input;
- int ans;
- while(true)
- {
- cout << "輸入一個整數值:" ;
- cin >> input ;
- if( input==-1 || input==999 )
- {
- cout<<"收工!下班\n";
- break;
- }
- if( input < 0 )
- {
- input *= -1;
- }
- do
- {
- ans = input % 10;
- sum_buf[ ans ] ++;
- input /= 10;
- }while( input != 0 );
- for( int i = 0 ; i < 10 ; i++ )
- {
- cout<< i << " 出現了 " << sum_buf[ i ] << " 次\n" ;
- sum_buf[i] = 0; //順便做清空的動作
- }
- }
- }
複製代碼 switch版若是不想看到0次的數值就用if讓其不顯示吧
至於有否比您我想到更高竿的寫法~那肯定有~只是沒興趣在此墨跡... |
|