題目來自網路
題目描述
通過鍵盤輸入100以內正整數的加、減表示式,請編寫乙個程式輸出運算結果字串。
輸入字串的格式為:「運算元1 運算子 運算元2」,「運算元」與「運算子」之間以乙個空格隔開。
補充說明:
1. 運算元為正整數,不需要考慮計算結果溢位的情況。
2. 若輸入算式格式錯誤,輸出結果為「0」。
要求實現函式:
void arithmetic(const char *pinputstr, long linputlen, char *poutputstr);
【輸入】 pinputstr: 輸入字串,
linputlen: 輸入字串長度
【輸出】 poutputstr: 輸出字串,空間已經開闢好,與輸入字串等長;
【注意】只需要完成該函式功能演算法,中間不需要有任何io的輸入輸出
舉例:輸入:「4 + 7」 輸出:「11」
輸入:「4 - 7」 輸出:「-3」
輸入:「9 ++ 7」 輸出:「0」 注:格式錯誤
**:#include using namespace std;
void arithmetic(const char *pinputstr, long linputlen, char *poutputstr)
else
}//檢測左運算元是否非法
if (nleftnum >= 100 || nleftnum <= 0)
//取運算子
ncur++;
if (pinputstr[ncur] == '-')
else if (pinputstr[ncur] == '+')
else
//檢測運算子後第乙個空格
ncur ++;
if (pinputstr[ncur] == ' ')
else
//取右運算元
while(pinputstr[ncur] != '\0')
else
}//檢測左運算元是否非法
if (nrightnum >= 100 || nrightnum <= 0)
//兩數進行操作
if (bflag)//減法
else
//把結果變成字串
int ncount = 0;
int nleft = 0;
int nright = 0;
char ctmp = 0;
bool bispos = true;
if (nresult == 0)
else if (nresult < 0)
while(nresult)
//翻轉
if (bispos)
else
nright = ncount - 1;
while(nright > nleft)
poutputstr[ncount] = '\0';
}int main()
{ char inputstr[10];
char outputstr[10];
cin.getline(inputstr,10);
arithmetic(inputstr,strlen(inputstr),outputstr);
cout<**好醜陋,哎...
連線兩個字串
include include void main char lianjie char a 30 char b 30 原型 extern char strcat char dest,char src 用法 include 功能 把src所指字串新增到dest結尾處 覆蓋dest結尾處的 0 並新增 ...
交換兩個字串
交換兩個字串,原來的字串分別為 學生 和 好 字串輸出顯示為 學生好 交換後輸出顯示為 好學生 include using namespace std int main char c1 5 學生 char c2 3 好 char m,n,t m c1 n c2 cout 交換前 m n n t co...
兩個字串相乘
先附上一張演算法圖 解釋 123 456 首先拿出1和456相乘,儲存到陣列1 2 3 的位置,然後拿出2和456相乘2 3 4的位置,依次類推,直到第乙個字串遍歷完 然後將他們相加,依次存到陣列中 實現如下 int j 0 int resindex 0 for int i 0 i然後再考慮進製,需...