Нужно написать калькулятор который умел бы только прибавлять и отнимат
Gasha
Нужно написать калькулятор который умел бы только прибавлять и отнимать, С ВВОДОМ В ОДНУ СТРОКУ.
На Jave, на С++ или же на PascalABC, ЛИШЬ БЫ РАБОТАЛ И КОМПИЛИРОВАЛСЯ.
Ответы:
Максим
Можно через Scanner читать ввод. Пробовать последовательно читать токен числа или символа. И далее проводить операцию.
Владимир Кляпнёв
Сделать вывод а + б = с в одну строку?
kaiu
program ideone;
var
r : integer;
s : string;
o, m : char;
i, n, x : integer;
begin
o := '+';
n := 0;
readln(r);
readln(s);
for i:=1 to Length(s) do
begin
m := s[i];
if (m='+') or (m='-') then
begin
if n > 0 then
begin
if o = '+' then r := r + x
else if o = '-' then r := r - x;
end;
o := s[i];
n := 0;
end
else
begin
if n > 0 then x := x*10 else x := 0;
case m of
'1': x := x + 1;
'2': x := x + 2;
'3': x := x + 3;
'4': x := x + 4;
'5': x := x + 5;
'6': x := x + 6;
'7': x := x + 7;
'8': x := x + 8;
'9': x := x + 9;
else
x := x div 10;
end;
Inc(n);
end;
end;
if n > 0 then
begin
if o = '+' then r := r + x
else if o = '-' then r := r - x;
end;
writeln(r:8);
end.
https://ideone.com/aXCj1t
Александр Бабушкин
Дык в одну строку же проще. И намного!
#include "errno.h"
#include "limits.h"
#include "stddef.h"
#include "stdlib.h"
#include "stdio.h"
char *pStr, *tmpStr;
int main(int argc, char *argv[]){
for(int i = 1; (pStr = argv[i]); i++)
{
double result = 0; errno = 0;
while(*pStr)
{ double tmp = strtod(pStr,&tmpStr);
if(errno){ perror("Error"); exit(EXIT_FAILURE); };
if((!tmp)&&(pStr==tmpStr)){ perror("No Digits"); exit(EXIT_FAILURE); };
result = result + tmp;
pStr = tmpStr;
};
printf(" %s = %f; \r\n",argv[i],result);
};
return(EXIT_SUCCESS); }
Даже дробные числа складывает! Единственный косяк - если число слишком большое, накапливаются ошибки округления.
|