Как использовать значение, введенное в do while L oop после выхода из do while L oop in C - PullRequest
1 голос
/ 06 апреля 2020

Я новичок ie в C программировании. Мне любопытно узнать, возможно ли взять значение, введенное в do, в то время как l oop, и использовать его вне l oop. Пытался закодировать это несколько раз, но это не работает для меня. Большое спасибо, если кто-то может мне помочь в этом вопросе.

#include <stdio.h>
int main() {
  float salary, hours, bonus;
  float rateperhour = 2.50;
  do {
    printf("Please enter hours worked: ");
    scanf("%f", &hours);
    salary = hours * rateperhour;
    if (salary > 500 && salary < 1000) {
      printf("Range: 5000-10000\n");
    } else {
      hours = 0;
    }
    printf("Salary: %.2f\n", salary);
  } while (hours > 0);
  for (bonus = 10; bonus <= 15; ++bonus) {
    salary = hours * bonus;
  }
  printf("Salary: %d", salary);
}

Ответы [ 2 ]

1 голос
/ 06 апреля 2020

" Как использовать значение, введенное в do while l oop после выхода из do while l oop в C? "

Если объект, которому присваивается значение, объявляется за пределами l oop, проблем с доступом к объекту за пределами l oop не возникает.

Если объект объявлен противоположным образом только внутри l oop, у него есть только время жизни и область действия в пределах l oop.

Но это не проблема с вашим кодом.


" Пытался закодировать его несколько раз, но он не работает для меня. "

Это не причина, почему не печатает ожидаемый вывод. Помимо ошибки неправильного спецификатора формата при последнем вызове printf:

printf("Salary: %d", salary);

вместо

printf("Salary: %.0f", salary);

или

printf("Salary: %d", (int) salary);

, поскольку salary имеет тип float,

нет ничего синтаксически неправильного в вашем коде, как вы можете видеть здесь , так что вы можете посмотреть на логи c позади алгоритма.

0 голосов
/ 06 апреля 2020

Что вы хотите сделать в:

for (bonus = 10; bonus <= 15; ++bonus) {
   salary =hours * bonus;
  }

Я имею в виду, как работает ваша бонусная система? Вы добавляете бонус к зарплате? скажи мне, чтобы я мог помочь тебе

...