⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test2.cpp

📁 eC++编译器源码
💻 CPP
字号:
#include <stdio.h>
#include <cstring.h>
#include <units.h>
#include <ReadLine.h>
#include <Help.h>

void main(void)  
{ UnitFraction left, right;
  float leftV, rightV;
  char s[50], c;
  unsigned int i, j;
  UNIT context[5];
  Lines l;

  Open(l, NULL);
  Fact("Miles", "Kilometers", 1.60935);
  Fact("Meters", "Yards", 1.093611);
  Fact("Miles", "Feet", 5280.0);
  Fact("Feet", "Inches", 12.0);
  Fact("Kilometers", "Meters", 1000.0);
  Canonical(LENGTH, "Meters");
  context[LENGTH] = Tag("Meters");

  left.numerator = 1L;  left.denominator = 0L;
  left.value = 0.0;
  for ( ;; ) {
    if (scanf("%s",s)!=1) break;
                        c = s[0];
                        if ((c=='z')||(c=='Z')) {
                                left.numerator = 0L;  left.denominator = 0L;
                                left.value = 0.0;
                                continue;
                       /* } else if (c=='?') {
                                i = 0; j = 0;
                                for (; i<lengthLimit; i=i+1) {
                                        assert(Name(UNIT(LONG(i)),s)>0);
                                        INC(j, String.Length(s)+1);
                                        if (j>=80) {InOut.WriteLn(); j=String.Length(s)+1;};
                                        InOut.WriteString(s);
                                };
                                InOut.WriteLn();
                                continue;*/
                        };
                        if (Read(l,s)<=0) break;
                        if (Read(s, 0, right)<=0) break;
/*                      
                        
                        u = Tag(s);
                        if (UNIT(u)==NOUNIT) break;
                        if (u<LONG(lengthLimit)) {
                                bit=LENGTH;
                                last[LENGTH] = u;
                        } else assert(false);
                        current = TRUNC(canonical[bit]);
                       
                        rightV = rightV/Convert(UNIT(LONG(current)), UNIT(u));
                        right.numerator = mask[bit]; right.denominator = 0L;
*/                        switch (c) {
                        case '+':
                                if (!Match(0L, left, right)) HALT;
                                INC(left.value, right.value);
                                break;
                        case '-':
                                if (!Match(0L, left, right)) HALT;
                                DEC(left.value, right.value);
                                break;
                        case '*':
                                left.value = left.value*right.value;
                                if (!Match(2L, left, right)) HALT;
                                break;
                        case '/':
                                left.value = left.value/right.value;
                                if (!Match(1L, left, right)) HALT;
                                break;
                        };
                        Unitsprintf(context, left, rightV, s);
                        printf("%f %s\n", rightV, s);
  };
};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -