zoukankan      html  css  js  c++  java
  • NYOJ 257 郁闷的C小加(一)

    http://acm.nyist.net/JudgeOnline/problem.php?pid=257

    栈的应用....

    View Code
     1 #include <stdio.h>
     2 #include <string.h>
     3 #define maxn 1005
     4 char stack[maxn],str[maxn],source[maxn];
     5 int main()
     6 {
     7     int i,j,l,k,t,le,rear;
     8     scanf("%d",&t);
     9     while(t--)
    10     {
    11         scanf("%s",str);
    12         le=strlen(str);
    13         rear=-1;
    14         l=0;
    15         for(i=0;i<le;i++)
    16         {
    17             if(str[i]==')')
    18             {
    19                 while(stack[rear]!='(')
    20                 {
    21                     source[l]=stack[rear];
    22                     l++;
    23                     rear--;
    24                 }
    25                 rear--;
    26             }
    27             else if('0'<=str[i] && str[i]<='9')
    28             {
    29                 source[l]=str[i];
    30                 l++;
    31             }
    32             else if(str[i]=='(')
    33             {
    34                 stack[++rear]=str[i];
    35             }
    36             else if(str[i]=='/' || str[i]=='*')
    37             {
    38                 while(stack[rear]=='/' || stack[rear]=='*')
    39                 {
    40                     source[l]=stack[rear];
    41                     l++;
    42                     rear--;
    43                 }
    44                 stack[++rear]=str[i];
    45             }
    46             else
    47             {
    48                 while(rear>=0 && stack[rear]!='(')
    49                 {
    50                     source[l]=stack[rear];
    51                     l++;
    52                     rear--;
    53                 }
    54                 stack[++rear]=str[i];
    55             }
    56         }
    57         while(rear>=0)
    58         {
    59             source[l]=stack[rear];
    60             l++;
    61             rear--;
    62         }
    63         for(i=0;i<l;i++)
    64         printf("%c",source[i]);
    65         printf("\n");
    66     }
    67     return 0;
    68 }
  • 相关阅读:
    九九乘法表
    判断and ,or
    格式化输出
    标志位
    循环
    ECMA-262规范定义的七种错误类型
    主流浏览器内核
    代理服务器(理解篇)
    前端常用词汇整理
    LeetCode 451. 根据字符出现频率排序
  • 原文地址:https://www.cnblogs.com/yoru/p/2672436.html
Copyright © 2011-2022 走看看