С модулями и остатками - PullRequest
1 голос
/ 22 мая 2011

Эй, у меня самое сложное время, чтобы понять, как отобразить этот результат.Скажем, например, я ввожу число, например 59. Исходя из этого числа, я получаю оставшийся результат 1 недели, 2 дня и 5 часов.Это, конечно, предполагает, что одна неделя имеет 40 часов, а 1 день - 7 часов, чтобы получить этот результат.Любая помощь в правильном направлении будет полезна.Пока я настроил это так:

scanf("%d %d %d", &totalWeeksWorked, &totalDaysWorked, &totalHoursWorked);

Ответы [ 2 ]

2 голосов
/ 22 мая 2011

Это не самый быстрый способ, но, пожалуй, самый иллюстративный:

int numodweeks = input/(7*24);
int numofdays  =input/24;
int numofhours = 24 - (input/24);

Использование по модулю:

        int numofweeks = input/(7*24);
        int numofdays = (input%numofweeks)/7;
        int numofhours = (input%(numofdays*24));

Затем отобразите их, как вы хотите.

0 голосов
/ 22 мая 2011
#include <stdio.h>

int const HOURS_PER_WEEK = 40;
int const HOURS_PER_DAY = 7;

int main() {
  int total_hours = 59;  // this is the input you get

  int remaining = total_hours;  // 'remaining' is scratch space

  int weeks = remaining / HOURS_PER_WEEK;
  remaining %= HOURS_PER_WEEK;

  int days = remaining / HOURS_PER_DAY;
  remaining %= HOURS_PER_DAY;

  int hours = remaining;

  printf("%d hours = %d weeks, %d days, %d hours\n",
         total_hours, weeks, days, hours);

  return 0;
}
...