J= 18拆成1*1+8*9有兩種作法..
作法一:輸入是字串的時候
先把1跟8拆成兩個字元,之後再利用atoi轉成整數來計算。
複製程式
int n1stNumber = 0, n2ndNumber = 0;
char szTitle[3]; //這邊要Title是定長度的時候會比較安全
char szNumber[2]; //這是用來作atoi轉換用的暫存
cin >> szTitle;
strcpy(szNumber, szTitle, 1); //複製第一個字元到szNum
n1stNumber = atoi(szNumber);
strcpy(szNumber, (szTitle+1), 1); //複製第二個字元到szNum
n2ndNumber = atoi(szNumber);
int nResult = n1stNumber * 1 + n2ndNumber * 9;
這個作法比較麻煩。
作法二:輸入是數字
複製程式
int nTitle = 0;
cin >> nTitle;
if ( nTitle >99 ) { messagebox( NULL, "The input value is not valid.", 0, 0); };
int n1stNumber = nTitle / 10;
int n2ndNumber = nTitle % 10;
int nResult = n1stNumber * 1 + n2ndNumber *9;
這方法比較快,不過這邊要記得加上數字長度檢查,不然值會取錯。
至於你貼的code的部份,感覺跟你問的問題差很多,因為code部分是抓整數進來,並不是抓字串。
所以你可以直接對數值處理就好。
