墨白Coding 2022-11-22 20:28 采纳率: 50%
浏览 11

为什么全部TLE,是手写的堆栈

问题遇到的现象和发生背景

初学数据结构,堆栈题目全部TLE

img

用代码块功能插入代码,请勿粘贴截图
#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 100
#define ERROR -1
#define OK 1

typedef struct stack{
    int arr[MAXSIZE];
    int top;
}*Stack;

int Push(int n,struct stack *s);
int Pop(struct stack *s);

int main(void){
    Stack s = (Stack)malloc(sizeof(struct stack));
    s->top=-1;

    int arr[10];
    int a,b,input;
    int num=0;
    scanf("%c",&input);

    while(input!='@'){
        if(input>='0'&&input<='9'){
            num+=num*10+input-'0';
        }
        if(input=='.'){
            Push(num,s);
            num=0;
        }
        if(input=='+'){
            a=Pop(s);
            b=Pop(s);
            Push(a+b,s);
        }else if(input=='-'){
            a=Pop(s);
            b=Pop(s);
            Push(b-a,s);
        }else if(input=='*'){
            a=Pop(s);
            b=Pop(s);
            Push(a*b,s);
        }else if(input=='/'){
            a=Pop(s);
            b=Pop(s);
            Push(b/a,s); 
        }
        scanf("%c",&input);
    }
    printf("%d",Pop(s));
    return 0;
}

int Push(int n,struct stack *s){
    if(s->top==MAXSIZE-1){
        return ERROR;
    }else{
        s->arr[++(s->top)]=n;
    }
    return OK;
}

int Pop(struct stack *s){
    if(s->top==-1){
        return ERROR;
    }else{
        return s->arr[(s->top)--];
    }
}

运行结果及报错内容

img

我的解答思路和尝试过的方法

是不是堆栈导致的?

  • 写回答

1条回答 默认 最新

  • wwc2017 2022-11-23 15:14
    关注
    num+=num*10+input-'0';
    

    这里写错了
    你试一下33 * 5即

    33.5.*@
    

    这个例子就知道了

    评论 编辑记录

报告相同问题?

问题事件

  • 修改了问题 11月22日
  • 创建了问题 11月22日

悬赏问题

  • ¥15 (标签-考研|关键词-set)
  • ¥15 求修改代码,图书管理系统
  • ¥15 请问有没求偏多标签数据集yeast,reference,recreation,scene,health数据集。
  • ¥15 传感网应用开发单片机实训
  • ¥15 Delphi 关于sAlphaImageList使用问题
  • ¥15 寻找将CAJ格式文档转txt文本的方案
  • ¥15 shein测试开发会问些啥我是写java的
  • ¥15 关于#单片机#的问题:我有个课程项目设计,我想在STM32F103veTX单片机,M3主控模块上设计一个程序,在Keil uVision5(C语言)上代码该怎么编译?(嫌钱少我可以加钱,急急急)
  • ¥15 opnet仿真网络协议遇到问题
  • ¥15 在安装python的机器学习程序包scikit-learn(1.1版本)时遇到如下问题