Openjudge-NOI题库-简单算术表达式求值

题目描述 Description

两位正整数的简单算术运算(只考虑整数运算),算术运算为:

+,加法运算;
-,减法运算;
*,乘法运算;
/,整除运算;
%,取余运算。

算术表达式的格式为(运算符前后可能有空格):
运算数 运算符 运算数

请输出相应的结果。 输入输出格式 Input/output 输入:
一行算术表达式。
输出:
整型算数运算的结果(结果值不一定为2位数,可能多于2位或少于2位)。
输入输出样例 Sample input/output
样例测试点#1
输入样例: 32+64 输出样例: 96 思路:可以先用一个字符串存入这个表达式,分别从前往后,从后往前找数字,从前往后遍历这个数组,在后面一个字符不为空格的情况下,变为数字,从后往前遍历这个数组,在前面一个字符不为空格情况下,变为数字,然后再扫描一遍这个数组看看是什么运算符号,最后判断运算符号输出结果即可。 代码如下:
 1 #include <stdio.h>
 2 #include <string.h>
 3 int main()
 4 {
 5     int n,i;
 6     char a[200];
 7     int f=0,l=0;
 8     gets(a);
 9     for(i=0;i<strlen(a);i++)//首个两位数 
10     {
11         if(a[i]>='0'&&a[i]<='9')//如果是数字 
12         {
13             if(a[i+1]>='0'&&a[i+1]<='9')//如果后面那个也是数字 
14             {
15                 f=(f+a[i]-48)*10;//变为数字往前进一位 
16             }
17             else//否则是空格什么的直接存为数字 
18             {
19                 f=f+a[i]-48;
20                 break;
21             }
22         }
23     } 
24     for(i=strlen(a);i>0;i--)//第二个两位数 
25     {
26         if(a[i]>='0'&&a[i]<='9')//如果是数字
27         {
28             if(a[i-1]>='0'&&a[i-1]<='9')//如果前面那个也是数字 
29             {
30                 l=l+a[i]-48;
31             }
32             else//否则是空格什么的直接存为数字 
33             {
34                 l=l+(a[i]-48)*10;//变为数字往前进一位 
35                 break;
36             }                                             /*  35+14  */
37         } 
38     }
39     for(i=0;i<strlen(a);i++)
40     {
41         if(a[i]=='+') printf("%d\n",f+l);
42         else if(a[i]=='-') printf("%d\n",f-l);
43         else if(a[i]=='*') printf("%d\n",f*l);
44         else if(a[i]=='/') printf("%d\n",f/l);
45         else if(a[i]=='%') printf("%d\n",f%l);
46     } 
47     return 0;
48 }

 

转载于:https://www.cnblogs.com/geek-007/p/5659620.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值