Вычислить значение этого выражения, пепреданного как параметр в main - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Здравствуйте, Вот и подкатило новое условие. В параметрах командной строки передается выражение, содержащее целые положительные числа и действия (сложение и вычитание). Вычислить значение этого выражения. Действия от чисел могут быть отделены при вводе символами пробела. (20 баллов). Буду благодарен, если подскажите как делать.) Код не нужен, сам напишу.) В принципе есть идея небольшая, плюс это 1, минус это 0. А там дальше считывать по символу используя atoi. Если это число то atoi вернёт единицу, если нет - ноль. Таким образом разветвить. Ну а дальше по шаблону, например если следующий минус, то след. параметр из строки - это число. Превращаем его в число и умножаем на -1.

Решение задачи: «Вычислить значение этого выражения, пепреданного как параметр в main»

textual
Листинг программы
int sum = 0;
char pm = '+';
for(i=1; i<argc; i++) {
  if (i%2==0) pm = *argv[i];
  else {
    int a = atoi(argv[i]);
    if (pm=='-') sum -= a;
    else sum += a;
  }
}

Объяснение кода листинга программы

В этом коде:

  1. Объявлены две переменные: sum и pm.
  2. Переменная sum инициализирована нулем. Это будет результатом вычисления выражения.
  3. Переменная pm инициализирована знаком +. Это может быть оператором сложения в выражении.
  4. Затем следует цикл for, который начинается с первого аргумента командной строки (argc) и продолжается до тех пор, пока индекс не станет четным (это означает, что мы перебрали все нечетные индексы).
  5. Внутри цикла проверяется, является ли индекс четным (это означает, что мы проверяем каждый второй нечетный индекс).
  6. Если индекс четный, то знак оператора (pm) присваивается символу в массиве аргументов (*argv[i]).
  7. Если индекс нечетный, то из аргументов извлекается строка (argv[i]), которую мы предполагаем, что можно преобразовать в целое число (atoi(argv[i])).
  8. Затем проверяется знак оператора (pm). Если он равен минусу (-), то значение переменной sum уменьшается на полученное целое число. Если знак оператора равен плюсу (+), то значение переменной sum увеличивается на полученное целое число.
  9. После завершения цикла значение переменной sum будет результатом вычисления выражения. Этот код выполняет простую арифметическую операцию (сложение или вычитание) над последовательностью аргументов командной строки и выводит результат.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.25 из 5
Похожие ответы