四则运算表达式由运算数(必定包含数字
,可能包含正或负符号
、小数点
)、运算符(包括+
、-
、*
、/
)以及小括号((
和)
)组成,每个运算数、运算符和括号都是一个token(标记)。现在,对于给定的一个四则运算表达式,请把她的每个token切分出来。题目保证给定的表达式是正确的,不需要做有效性检查。
输入格式:
在一行中给出长度不超过40个字符的表达式,其中没有空格,仅由上文中token的字符组成
输出格式:
依次输出表达式中的tokens,每个token占一行。
输入样例:
32*((2-2)+5)/(-15)
输出样例:
32
*
(
(
2
-
2
)
+
5
)
/
(
-15
)
【c code】
/*
* 注意以下三种情况:
* 1、负数 (-1)
* 2、浮点数 1.0
* 3、首个字符不能有回车
*/
#include "stdio.h"
#include <string.h>
int main(){
char str[41], ch, flag=0;
int i=0;
scanf("%s", str);
int len=strlen(str);
printf("%c", str[0]);
for(i=1; i<len; i++){
if (str[i]>47 && str[i]<58 || str[i]=='.'){
if (flag)
printf("\n");
printf("%c", str[i]);
flag=0;
}else{
if (str[i-1]=='(' && str[i]=='-'){
printf("\n%c", str[i]);
flag=0;
}else{
printf("\n%c", str[i]);
flag=1;
}
}
}
return(0);
}