`
小骏向前冲
  • 浏览: 18222 次
社区版块
存档分类
最新评论

机试题三

    博客分类:
  • C
 
阅读更多

问题描述: 

输入一个只包含个位数字的简单四则运算表达式字符串,计算该表达式的值

注: 1、表达式只含 +, -, *, / 四则运算符,不含括号

2、表达式数值只包含个位整数(0-9),且不会出现0作为除数的情况

3、要考虑加减乘除按通常四则运算规定的计算优先级

4、除法用整数除法,即仅保留除法运算结果的整数部分。比如8/3=2。输入表达式保证无0作为除数情况发生

5、输入字符串一定是符合题意合法的表达式,其中只包括数字字符和四则运算符字符,除此之外不含其它任何字符,不会出现计算溢出情况

? 要求实现函数: 

int calculate(int len,char *expStr)

【输入】 int len: 字符串长度;

char *expStr: 表达式字符串;

【输出】 无

【返回】 计算结果

 

示例 

1) 输入:char *expStr = “1+4*5-8/3”

函数返回:19

2) 输入:char *expStr = “8/3*3”

函数返回:6 :

 

#include <stdio.h>
#include <string.h>
int calculate(int len, char *expStr) {
    int i, count1 = 0, count2 = 0;
    int number[50];
    char op[50];
    int sign = 1;
    for(i = 0; i < len; i++) {
        if(expStr[i] <= '9' && expStr[i] >= '0')
            number[count1++] = expStr[i] - '0';
        else
            op[count2++] = expStr[i];
    }

    for(i = 0; i < count2; i++) {
        switch(op[i]) {
            case '*':
                number[i + 1] = number[i] * number[i + 1];
                number[i] = 0;
                op[i] = (sign == 1) ? '+' : '-';
                //op[i] = '+';
                break;
            case '/':
                number[i + 1] = number[i] / number[i + 1];
                number[i] = 0;
                op[i] = (sign == 1) ? '+' : '-';
                //op[i] = '+';
                break;
            case '+':
                sign = 1;
                break;
            case '-':
                sign = -1;
                break;
            default:break;
        }
    }

    for(i = 0; i < count2; i++) {
        switch(op[i]) {
            case '+':
                number[i + 1] = number[i] + number[i + 1];
                break;
            case '-':
                number[i + 1] = number[i] - number[i + 1];
                break;
            case '*':
            case '/':
            default:break;
        }
    }

    return number[count2];
}

int main() {
    char expStr[50];
    gets(expStr);
    int result = calculate(strlen(expStr), expStr);
    printf("运算结果为:%d", result);
}

 

分享到:
评论

相关推荐

    jsp机试题 答案jsp机试题 答案jsp机试题 答案jsp机试题 答案

    本资料包可能包含的是针对JSP技术的机试题及其答案,旨在帮助学习者掌握JSP的核心概念和技术。 **JSP基础知识** 1. **JSP生命周期**:JSP页面经历三个主要阶段:翻译、初始化和响应。在翻译阶段,JSP会被转换成...

    JavaOOP内部测试机试题3.doc

    在这个Java内部测试机试题中,主要考察了如何使用Java实现一个空气质量监测管理系统,涉及到了类的设计、对象的创建和管理以及基本的用户交互。 1. **类的设计**: - **AirQuality类**:这是系统中的核心实体类,...

    5.0_S1_Java内部测试机试题(带答案)

    每个文件"5.0_S1_Java内部测试机试题2.doc"、"5.0_S1_Java内部测试机试题3.doc"、"5.0_S1_Java内部测试机试题1.doc"都可能包含上述一个或多个知识点的测试题目,而"答案.java"则提供了解答,方便考生核对和学习。...

    ACCP-S1结业考试机试题3【原创作者田超凡,已申请版权,禁止随意转发,侵权仿冒必究】

    ACCP-S1结业考试机试题3【原创田超凡,已申请版权,禁止随意转发,侵权仿冒必究】

    volvo挖掘机试题资料

    【标题】:“Volvo挖掘机试题资料”是一套专注于Volvo挖掘机操作、维修和技术知识的测试题目集合,旨在帮助学习者深化对Volvo挖掘机的理解和掌握。这套资料可能涵盖了理论知识、实际操作技能、安全规程等多个方面,...

    asp.net机试题

    ASP.NET 机试题知识点总结 一、ASP.NET 概述 ASP.NET 是微软公司推出的一个基于WEB的应用程序开发框架,使用C#或VB.NET等语言开发,能够快速构建动态网站和Web应用程序。ASP.NET 提供了许多强大的功能,如数据绑定...

    Java机试题经典练习

    Java机试题经典练习是针对Java编程语言的上机考试或实战训练的重要资源,这些题目旨在帮助学习者巩固和提升在Java编程方面的技能。通过解决这些练习,你可以加深对Java语法、面向对象编程、异常处理、数据结构、算法...

    2019南京大学考研复试机试题.zip

    标题"2019南京大学考研复试机试题.zip"明确指出这是一个与2019年南京大学硕士研究生入学考试复试相关的资料压缩包。"机试题"通常指的是计算机科学或相关专业在复试阶段可能会遇到的上机编程题目,考生需要在规定时间...

    Java考试机试题

    "Java考试机试题"通常涵盖Java的基础语法、面向对象编程、异常处理、集合框架、多线程、输入输出流、数据库连接等核心知识点。 1. **Java基础语法**:这包括变量声明、数据类型(如基本类型和引用类型)、运算符、...

    javaOOP内部测试机试题 - 副本

    Java面向对象编程测试机试题 本资源是Java面向对象编程的测试机试题,旨在考察初学者对Java语言和面向对象编程的理解和掌握情况。该资源共有七个部分,分别是语言和环境、功能要求、类的设计、具体要求及推荐实现...

    y2结业机试题

    【标题】"Y2结业机试题"涉及的是北大青鸟教育机构Y2阶段的Java编程结业考核,这是一套包含答案的测试题目。Y2通常指的是学习过程中的第二个阶段,意味着学员已经具备了一定的基础知识,正在进一步提升技能。 【描述...

    Java开发机试题

    【Java开发机试题详解】 Java开发机试题是面试过程中常见的一种考核方式,旨在评估候选人的基础知识、编程能力和问题解决能力。以下是对部分题目的详细解释: 1. 数据库系统的恢复通常依赖于日志记录,日志应包含...

    java大三机试题

    Java大三机试题主要涉及到Java Web开发的基本技术,包括JSP、SQL以及数据库操作,还有前端验证和用户交互。下面将详细阐述这些知识点。 1. **JSP (Java Server Pages)** JSP是Java EE中用于创建动态网页的技术。在...

    华为机试题合集

    【华为机试题合集】是针对想要参加华为公司面试,特别是C语言方面考核的求职者们的一份宝贵资源。这份合集涵盖了多个方面的知识点,旨在帮助考生熟悉华为的机试流程,提高通过率。以下是对这些机试题目的详细解读: ...

    java机试题

    Java 机试题解析 Java 机试题是一份涵盖多个领域的编程题目,旨在考察 Java 初学者的基础编程能力。本文将对题目逐一进行解析,并提供相应的知识点。 1. 闰年判断 本题要求从控制台输入一个年份,然后判断是否是...

    郑州大学软件学院机试题java方向各种机试题及答案

    郑州大学软件学院的机试题集涵盖了Java编程、数据结构、计算机组成原理、JSP程序设计以及计算机网络等多个关键领域,这些题目与答案是学生备考的重要参考资料。以下将针对这些主题展开详细的知识点解析: 1. **Java...

    c# 基础 面试题 机试题

    本篇文章将详细探讨C#基础面试题及机试题中的核心知识点,帮助读者理解和掌握C#语言的关键要素。 1. **数据类型与变量** - C#包含基本数据类型(如int、float、bool)和引用数据类型(如类、接口、数组)。理解...

    C#OOP内部测试机试题

    ### C# OOP 内部测试机试题解析 ...通过以上分析和设计,可以有效地完成这三项内部测试机试题的要求。这些试题不仅考察了C#的基础语法,还涉及到了面向对象编程的核心概念和技术,如多态、继承、泛型、XML解析等。

    华为机试题校园招聘大全

    【华为机试题校园招聘大全】 华为作为全球知名的通信与信息技术解决方案提供商,每年都会进行大规模的校园招聘活动,吸引优秀毕业生加入。"华为机试题校园招聘大全"是华为公司在招聘过程中,为评估应聘者的技术能力...

Global site tag (gtag.js) - Google Analytics