| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1425 人关注过本帖
标题:计算表达式的值
只看楼主 加入收藏
liucs116
Rank: 2
等 级:论坛游民
帖 子:130
专家分:29
注 册:2009-11-4
结帖率:92.86%
收藏
已结贴  问题点数:20 回复次数:5 
计算表达式的值
问题描述

有些语言中表达式的运算符使用字符串表示,例如用mul代表*,用div代表/,用add代表+,用sub代表-,用mod代表%。

输入

第一行为表达式的个数n。其余n行每行一个表达式,表达式由两个整数及其中间的运算符字符串表示。

输出

输出为n行,每行是对应表达式的值。注意,此处要求的所有运算均为整数运算。

输入样例

5
345 mul 122
3945 div 12
321 add 343
340 sub 211
377 mod 27

输出样例

42090
328
664
129
26

我的代码:
#include<stdio.h>
int main()
{
    int i,n,j,a,b,d;
    char c;
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        d=0;
        scanf("%d %c %d",&a,&c,&b);
        getchar();
        if(c=='mul')
            d=a*b;
        else if(c=='div')
            d=a/b;
        else if(c=='add')
            d=a+b;
        else if(c=='sub')
            d=a-b;
        else if(c=='mod')
            d=a%b;
        printf("%d\n",d);
        getchar();
    }
    return 0;
}
哪有问题?还是用其他的方法好?
搜索更多相关主题的帖子: 表达 
2009-11-07 19:36
lijm1989
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:珠海
等 级:贵宾
威 望:12
帖 子:675
专家分:2844
注 册:2009-10-14
收藏
得分:6 
#include<stdio.h>
#include<string.h>
int main()
{
    int i,n,j,a,b,d;
    char c[4];     //  三个字符的是字符串
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        d=0;
        scanf("%d %s %d",&a,&c,&b);
        getchar();
        if(!strcmp(c,"mul"))   //  字符串比较用strcmp
            d=a*b;
        else(!strcmp(c,"div"))
            d=a/b;
        else if(!strcmp(c,"add"))
           d=a+b;
        else if(!strcmp(c,"sub"))
            d=a-b;
        else if(!strcmp(c,"mod"))
            d=a%b;
        printf("%d\n",d);
        getchar();
    }
    return 0;
}
2009-11-07 20:06
longlong89
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广州
等 级:小飞侠
威 望:6
帖 子:1043
专家分:2754
注 册:2009-8-18
收藏
得分:4 
程序代码:
#include<stdio.h>
main()
{
float x,y;
char op;
scanf("%f%c%f",&x,&op,&y);
if(op=='+')
printf("%f+%f=%f\n",x,y,x+y);
 else if(op=='-')
  printf("%f-%f=%f\n",x,y,x-y);
   else if(op=='*')
    printf("%f*%f=%f\n",x,y,x*y);
     else if(op=='/')
      {
      if(y==0)printf("error!\n");
       else printf("%f/%f=%f\n",x,y,x/y);
       }
       if(op!='+'&&op!='-'&&op!='*'&&op!='/')
       printf("You are a PIG!\nInput error!\n ");
     }

以前写的类似的,你的问题上楼正解

[ 本帖最后由 longlong89 于 2009-11-7 20:12 编辑 ]

想象力征服世界
2009-11-07 20:09
lijm1989
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:珠海
等 级:贵宾
威 望:12
帖 子:675
专家分:2844
注 册:2009-10-14
收藏
得分:0 
我的是错的···~~···不好意思····
2009-11-07 20:19
lijm1989
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:珠海
等 级:贵宾
威 望:12
帖 子:675
专家分:2844
注 册:2009-10-14
收藏
得分:10 
因为是直接改的,没调试·····不好意思···
更正版:
程序代码:
#include<stdio.h>
#include<string.h>
int main()
{
    int i,n,j,a,b,d;
    char c[4];     //  三个字符的是字符串
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        d=0;
        scanf("%d %s %d",&a,&c,&b);    
  //   不用getchar();
        if(!strcmp(c,"mul"))   //  字符串比较用strcmp
            d=a*b;
        else if(!strcmp(c,"div"))
            d=a/b;
        else if(!strcmp(c,"add")) 
           d=a+b;
        else if(!strcmp(c,"sub"))
            d=a-b;
        else if(!strcmp(c,"mod"))
            d=a%b;
        printf("%d\n",d);
        getchar();
    }
    return 0;
} 
2009-11-07 20:29
liucs116
Rank: 2
等 级:论坛游民
帖 子:130
专家分:29
注 册:2009-11-4
收藏
得分:0 
好,对了!谢谢!

学无止境!
2009-11-07 20:44
快速回复:计算表达式的值
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.034993 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved