gpt4 book ai didi

C程序打印两次

转载 作者:行者123 更新时间:2023-11-30 20:48:17 25 4
gpt4 key购买 nike

所以我有一个程序正在检查这一年是否是闰年,然后根据它是否是闰年我将给出一年中的天数(1-366)..我得到到目前为止,我已经处理过下面的代码,当我输入非闰年时,我得到一个正常的答案,但是当我输入闰年时,我得到 displayDate(day) 运行两次并打印两次,复制粘贴我的代码自己尝试一下,请告诉我它有什么问题。我也是 C 新手,所以如果它很简单,请放轻松

int main ()
{
int day ,month , year, LeapOrNot, date ;

printf("PLease enter a date in the following format Month/day/year: ");
scanf("%d/%d/%d" , &month , &day , &year );

LeapOrNot = isLeap(year);
switch (LeapOrNot)
{
case 1 :
switch (month)
{
case 1:
date = day;
break;
case 2:
date = 31 + day;
break;
case 3 :
date = 60 + day;
break;
case 4 :
date = 91 + day;
break;
case 5 :
date = 121 + day;
break;
case 6:
date = 152 + day;
break;
case 7:
date = 182 + day;
break;
case 8 :
date = 213 + day;
break;
case 9 :
date = 244 + day;
break;
case 10:
date = 274 + day;
break;
case 11 :
date = 305 + day;
break;
case 12 :
date = 335 + day;
break;
}
displayDate(date);
case 0 :
switch (month)
{
case 1:
date = day;
break;
case 2:
date = 31 + day;
break;
case 3 :
date = 59 + day;
break;
case 4 :
date = 90 + day;
break;
case 5 :
date = 120 + day;
break;
case 6:
date = 151 + day;
break;
case 7:
date = 181 + day;
break;
case 8 :
date = 212 + day;
break;
case 9 :
date = 243 + day;
break;
case 10:
date = 273 + day;
break;
case 11 :
date = 304 + day;
break;
case 12 :
date = 334 + day;
break;
}
displayDate(date);
}
}

int isLeap(int year)
{
int LeapOrNot;
if ((year % 4 == 0 && year % 100 != 0) || year % 400 ==0)
LeapOrNot = 1 ;
else
LeapOrNot = 0 ;
return LeapOrNot;
}

int displayDate(int date )
{
printf("the day for that year is %d", date);
}

最佳答案

你没有break语句

switch (LeapOrNot)
{
case 1 :

因此它将继续执行 case 0: 代码并调用 displayDate 两次

关于C程序打印两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43992652/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com