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部分是抓整数进来,并不是抓字串。
所以你可以直接对数值处理就好。
