里咿恩夜石 2020-06-17 10:12 采纳率: 50%
浏览 647
已采纳

有关OJ的Runtime Error:Segmentation fault问题

如题,这个问题这几天一直出现,今天挑了一道稍微短一点的题目,希望大神能帮忙解惑!
原题目的链接(后缀表达式qiu'zhi)

#include<stdio.h>
typedef struct
{
    int a[300];
    int top;
} stack;
int main()
{
    int i,sum,e=0,temp,k;
    char s[300]={'0'};
    stack L;
    gets(s);
    i=0;
    for(i=0; s[i]!='@'; i++)
    {
        if(s[i]<='9'&&s[i]>='0')
        {
            L.top++;
            temp=s[i]-'0';
            k=i+1;
            while(s[i]!='@')
            {
                if(s[k]<='9'&&s[k]>='0')
                {
                    temp=temp*10+(s[k]-'0');
                    k++; i++;
                }
                else{break;}
            }
            L.a[L.top]=temp;
        }
        else if(s[i]=='+'||s[i]=='-'||s[i]=='*'||s[i]=='/')
        {
            switch(s[i])
            {
                case '+':e=L.a[L.top-1]+L.a[L.top]; break;
                case '-':e=L.a[L.top-1]-L.a[L.top]; break;
                case '*':e=L.a[L.top-1]*L.a[L.top]; break;
                case '/':e=L.a[L.top-1]/L.a[L.top]; break;
                default:break;
            }
            L.a[L.top-1]=e;
            L.a[L.top]=0;
            L.top--;
        }

    }
    printf("%d",L.a[L.top]);
    return 0;
 } 
  • 写回答

1条回答 默认 最新

  • qiu_shaofeng 2020-06-17 11:57
    关注

    stack L没初始化,没处理带符号数的输入,运行时可能产生错误。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已采纳回答 11月17日

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!