-1
這是我正在處理的問題的一部分。閏年部分未正確返回。無論我是否投入閏年,它都會在二月份返回29。我究竟做錯了什麼?爲什麼我的功能在C中無法正常工作?
#include <stdio.h>
#include <stdbool.h>
struct date
{
int month;
int day;
int year;
};
int main (void)
{
struct date now;
void numberOfDays (struct date v);
bool findLeap (struct date v);
printf("Enter the date in this format mm/dd/yyyy: ");
scanf("%i", &now.month, &now.day, &now.year);
numberOfDays(now);
return 0;
}
void numberOfDays (struct date v)
{
int daysOfMonth;
bool findLeap (struct date v);
if (v.month == 4 || v.month == 6 || v.month == 9 || v.month == 11)
daysOfMonth = 30;
else if (v.month == 2)
{
findLeap(v);
if (findLeap)
daysOfMonth = 29;
else
daysOfMonth = 28;
}
else
daysOfMonth = 31;
printf("Number of days in month: %i", daysOfMonth);
}
bool findLeap (struct date v)
{
bool isLeap;
if (v.year % 4 == 0 && v.year % 100 != 0 || v.year % 400 == 0)
{
isLeap = true;
}
else
{
isLeap = false;
}
return isLeap;
}
你'scanf'是錯誤的 - 三個值,但格式字符串中只有一個。 'scanf(「%i」,...' - >'scanf(「%i%i%i」,...' –
是的,我之前已經把它改正了,但是在嘗試所有我沒有改變的東西它回來了。謝謝。 – crawfbigg