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)

銀色三冠王IS 2003-10-24 01:50 AM

回覆: 會c++的大大幫個忙......
 
引用:
Originally posted by asdf77885511
做迴圈就好了丫...........跟位數長不長沒有關係............

有關係.. 嚴謹一點的話..
一開始還要判斷輸入的數字,長度多少,才能決定迴圈次數..(用for會有差,用while要判斷商數為0則離開迴圈)
引用:
Originally posted by shukae
嗯..... 我的意思是說, 因為 C 語言有變數型態的定義
我不曉得C語言能定義的整數數值能有多大啦~~~ :confused:
但不論如何都有位數的極限, 數值處理的位數長度會受限制
所以若以接受數值輸入的方法, 最好採用字串變數
用字串變數與ASCII碼之間的對應關係來做
才不會產生溢位的問題 :D

程式高手..

我只學過簡單的TC和QB..:shy:
你是資工或數值應用系的嗎?:D

asdf77885511 2003-10-24 02:13 AM

回覆: 回覆: 會c++的大大幫個忙......
 
引用:
Originally posted by 銀色三冠王IS
有關係.. 嚴謹一點的話..
一開始還要判斷輸入的數字,長度多少,才能決定迴圈次數..(用for會有差,用while要判斷商數為0則離開迴圈)

程式高手..

我只學過簡單的TC和QB..:shy:
你是資工或數值應用系的嗎?:D

for(初始化;迴圈執行條件;數字變化)

for( ;商數!=0; )

for的迴圈執行條件可以不止一個,需要多個的話用逗號隔開,依本題來說
不需要初始化,連遞增遞減都不需要........

銀色三冠王IS 2003-10-24 02:16 AM

回覆: 會c++的大大幫個忙......
 
引用:
Originally posted by asdf77885511
for(初始化;迴圈執行條件;數字變化)

for( ;商數!=0; )

for的迴圈執行條件可以不止一個,需要多個的話用逗號隔開,依本題來說
不需要初始化,連遞增遞減都不需要........

對吼..:p

半夜腦袋不清醒..:sleep:
睡眠不足越來越笨..:nonono:

asdf77885511 2003-10-24 02:17 AM

要知道幾位數的話

for(i=0;商數!=0;i++)

最后迴圈執行完的i值就是幾位數了

harrisonlin 2003-10-24 02:21 AM

#include <stdlib.h>
#include <iostream.h>

void main()
{
const int DigitCount = 6;
char input[80];
int result[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};

cin >> input;

for(int index = 0; index < DigitCount; index++)
{
switch(input[index])
{
case '0':
result[0]++;
break;
case '1':
result[1]++;
break;
case '2':
result[2]++;
break;
case '3':
result[3]++;
break;
case '4':
result[4]++;
break;
case '5':
result[5]++;
break;
case '6':
result[6]++;
break;
case '7':
result[7]++;
break;
case '8':
result[8]++;
break;
case '9':
result[9]++;
break;
}
}

for(index = 0; index < 10; index++)
{
cout << "char '" << index << "' appears " << result[index] << " times." << endl;
}
}

asdf77885511 2003-10-24 02:30 AM

回覆: 回覆: 回覆: 會c++的大大幫個忙......
 
引用:
Originally posted by asdf77885511
for(初始化;迴圈執行條件;數字變化)

for( ;商數!=0; )

for的迴圈執行條件可以不止一個,需要多個的話用逗號隔開,依本題來說
不需要初始化,連遞增遞減都不需要........

不好意思~~~說錯了不是逗號隔開........
是(條件1) || (條件2)或(條件1) && (條件2)

shukae 2003-10-24 11:28 AM

回覆: 回覆: 會c++的大大幫個忙......
 
引用:
Originally posted by 銀色三冠王IS
有關係.. 嚴謹一點的話..
一開始還要判斷輸入的數字,長度多少,才能決定迴圈次數..(用for會有差,用while要判斷商數為0則離開迴圈)

程式高手..

我只學過簡單的TC和QB..:shy:
你是資工或數值應用系的嗎?:D


我不是資訊相關科系的 :)
只是從國中就覺得很好玩, 學了一大票程式語言 :D
不過就是沒有學C :shock:
用了很多程式語言, 其實發現最好用的是 Perl 說 :D :D
像 $a="0123456789", 其中的 456 要用ABC 來取代
Basic 或 C, java 等都要自己處理, 我都自己弄自定函數
不過 Perl 只要短短一列搞定 $a =~ s/456/abc/gi;
真是太完美了, s/// 的功能很強大 :D

harrisonlin 2003-10-24 11:35 AM

回覆: 回覆: 回覆: 會c++的大大幫個忙......
 
引用:
Originally posted by shukae
不過 Perl 只要短短一列搞定 $a =~ s/456/abc/gi;


我想這是就是 Perl 被戲稱為 "Write Only Language" 的原因吧...

性格男人 2003-10-24 11:36 AM

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

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



不是要我說你
這根本不是c++的問題
是邏輯的問題....................................

0-9 分成 0 1 2 3 ... 9

想辦法把 六位數 拆成 六個數字

用switch 去判斷 六個數字 出現的次數 每出現一次就加一


挨 現在的大學生 真的都這樣嗎....

性格男人 2003-10-24 11:37 AM

挨 教他釣魚就好
何必連魚都給他

引用:
Originally posted by harrisonlin
#include <stdlib.h>
#include <iostream.h>

void main()
{
const int DigitCount = 6;
char input[80];
int result[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};

cin >> input;

for(int index = 0; index < DigitCount; index++)
{
switch(input[index])
{
case '0':
result[0]++;
break;
case '1':
result[1]++;
break;
case '2':
result[2]++;
break;
case '3':
result[3]++;
break;
case '4':
result[4]++;
break;
case '5':
result[5]++;
break;
case '6':
result[6]++;
break;
case '7':
result[7]++;
break;
case '8':
result[8]++;
break;
case '9':
result[9]++;
break;
}
}

for(index = 0; index < 10; index++)
{
cout << "char '" << index << "' appears " << result[index] << " times." << endl;
}
}


所有的時間均為GMT +8。 現在的時間是11:55 AM.

vBulletin Version 3.0.1
powered_by_vbulletin 2026。