Я хотел бы найти количество лет, недель & дней в C. Я не знаю, что не так с моим кодом. Пожалуйста, помогите:Расчет времени в C
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#define DAYS_PER_WEEK 7
#define WEEKS_PER_YEAR 52
#define DAYS_PER_YEAR 364
int main(void)
{
int a; int y; double w; double days; int weeks;
printf("Enter the time in days: ");
scanf("%d", &a);
y = a/DAYS_PER_YEAR;
w = ((a/ DAYS_PER_YEAR) - y)* WEEKS_PER_YEAR;
weeks = ((a/DAYS_PER_YEAR) - y)* WEEKS_PER_YEAR;
days = (w - weeks)* DAYS_PER_WEEK;
printf(" %d days is %d years, %d weeks and %d days", a, y, weeks, days);
return 0;
}
Может ли кто-нибудь сказать мне, где я поступил не так? Я подозреваю, что проблема заключается в функции printf
.
'(а/DAYS_PER_YEAR) - y' где' 'y' является (а/DAYS_PER_YEAR)'. Считаете ли вы, что это возможно для оценки, кроме 0? Кроме того, конечно, компилятор дал вам предупреждение, что вы не должны игнорировать: 'warning: format '% d' ожидает аргумент типа 'int', но аргумент 5 имеет тип 'double' [-Wformat =] printf ("% d дней -% d лет,% d недель и% d дней ", a, y, недели, дни); – kaylum