当前位置: 首页 > news >正文

洛谷1449c语言

这道题很明显和之前做的逆波兰表达式(见leecodeLCR036逆波兰表达式)就是一个模子里刻出来的题,都是利用栈进行表达式的计算

BUT这道题和我们自己之前写的不一样的地方在于对输入的特殊处理——尤其是因为在这里我们需要自己对输入进行处理

原本我想一次性将所有(不管是运算符号还是数字字符)以字符串的形式先进行读取,读取完毕之后将数字字符串转换为整型数字但是由于.还有运算符之间并没有进行分隔开来,注定我们只能使用getchar“逐字逐句”地进行读取

进行读取之后我们先要进行判断——是数字还是运算符,数字的话就将他加投入到数字之中直至遇到.为止——说明当前数字读取完毕——>放入数字的栈之中进行暂时的存储

因为使用的是getchar进行单个字符的读取,所以我们在读取的同时可以将栈中数据拿出进行计算,不需要再编写函数

#include<stdio.h>
#include<stdlib.h>
int stack[1000];
int top=0;
int main(){
char buf;
int num=0;
while((buf=getchar())!='@'){
    //首先要进行读取,读取时字符串当中的点是关键
    if(buf>='0'&&buf<='9'){//注意读到0的情况,不要把0给忘了
        num=num*10+(buf-'0');
    }
    else if(buf=='.'){
        // printf("%d\n",num);
        stack[top++]=num;
        num=0;
    }
    else if(buf=='+'){
        int num2=stack[--top];
        int num1=stack[--top];
        stack[top++]=num1+num2;
        // printf("%d\n",stack[top-1]);
    }
    else if(buf=='-'){
        int num2=stack[--top];
        int num1=stack[--top];
        stack[top++]=num1-num2;
        // printf("%d\n",stack[top-1]);

    }
    else if(buf=='*'){
        int num2=stack[--top];
        int num1=stack[--top];
        stack[top++]=num1*num2;
        // printf("%d\n",stack[top-1]);
    }
    else if(buf=='/'){
        int num2=stack[--top];
        int num1=stack[--top];
        stack[top++]=(num1/num2);
        // printf("%d\n",stack[top-1]);
    }

}
    printf("%d",stack[--top]);
    
}

相关文章:

  • 快速认识STL及string类
  • MySQL存储过程
  • Web网页内嵌福昕OFD版式办公套件实现在线预览编辑PDF、OFD文档
  • 笔记:纯真IP库
  • 前端工程化--gulp的使用
  • 计算机网络——传输层(TCP)
  • 【商城实战(82)】区块链赋能用户身份验证:从理论到源码实践
  • SpringBoot集成阿里云OCR实现身份证识别
  • 23种设计模式-桥接(Bridge)设计模式
  • 为AI聊天工具添加一个知识系统 之152 当今AI模型和AI工具应用中的核心矛盾
  • osgVerse学习:1、使用GPU烘焙处理倾斜摄影顶层合并时的接缝问题
  • js 对象深拷贝的五种方法
  • java-IO流笔记
  • android 一步完成 aab 安装到手机
  • 【Qt】QByteArray详解
  • 【HTML 基础教程】HTML 属性
  • antd-vue Table组件翻页后保留上一页已选的数据
  • 比特币等虚拟货币实时价格使用说明,数字货币价格获取,k线获取,实时价格获取
  • Java 8-17核心特性全景解析之Java12
  • Spring IOC/DI的依赖注入方式及示例
  • 学校网站建设及使用档案/2023重大新闻事件10条
  • 把网站做成微信小程序/网络推广引流有哪些渠道
  • 聊城wap网站制作/现在搜什么关键词能搜到网站
  • 写小说赚钱的网站/今日热点新闻头条排行榜
  • 网站视频播放代码/网站内容优化关键词布局
  • 代做视频的网站/百度站长提交网址