Я нахожусь во введении в класс C, и мой профессор только что перевел нас с python (в качестве вступления) на C. У меня возникли некоторые трудности с получением синтаксиса C.Предполагается, что программа рассчитывает количество дней между двумя отдельными годами и учитывает високосные годы.
У меня есть такой код:
#include <stdio.h>
int main() {
int startyear, endyear;
int totalyears, index;
int difference, numyears, days;
printf("What is the starting year of your time period?\n");
scanf("%d", &startyear);
printf("What is the ending year of your time period?\n");
scanf("%d", &endyear);
difference = startyear;
numyears = 0;
days = 0;
while (difference <= endyear) {
difference++;
numyears++;
if (difference / 4 == 1) {
days + 1;
}
}
printf("There are %d days between 1/1/%d and 1/1/%d\n", days + numyears * 365 , startyear, endyear);
return 0;
}
Когда я использую 2003 и 2005 как два года, но программа печатает результат как 4,201,453 дня, что явно неверно.Фактический результат должен быть около 731. Я знаю, что, вероятно, допустил несколько ошибок в цикле while, но я не совсем уверен, как это исправить.Я пытаюсь убедиться, что цикл while проверяет, делится ли месяц на 4, что будет означать високосный год, и я предполагал, что для этого я буду использовать строку:
if (difference / 4 == 1) {
days + 1;
«1» означает возвращение логического выражения как «true», но я не совсем уверен, что именно так C его читает.Я прошу прощения за длинный вопрос, но я просто пытаюсь быть максимально ясным.Я также извиняюсь, потому что чувствую, что я публикую беспорядок в коде, но я действительно не знаю, куда идти, чтобы это исправить.
Заранее спасибо, ребята и девочки.
РЕДАКТИРОВАТЬ: я следил за комментариями до сих пор, и мне удалось получить программу для расчета 1095 дней.Я все ближе, но в моих расчетах все еще должно быть что-то не так.