
已解决问题
谷歌灵Growing用户在2014.03.29提交了关于“三菱一个C语言的问题,小白渴求解答”的提问,欢迎大家涌跃发表自己的观点。目前共有2个回答,最后更新于2025-03-01T08:16:16。这个程序,我修改了好多遍,语法没有错误,但却还是执行不了!
#include<stdio.h>
intmain(void)
{
intyear=0,leap=0,mouth=0,date=0,d=0,c=9,day=0;
printf("enteryearmouthdate\n");
scanf("%d%d%d",&year,&mouth,&date);
//月份的天数,**判断,检查输入
if(year>=2000)
{
switch(month)//检查日期
{
case1:case3:case5:
case7:case8:case10:
case12:
{
if(date<=31)
{
intsumday(intdate,intyear,intmouth);
c=sumday(date,year,mouth);
printf("%4d\n",c);
}
elseprintf("您输入的月份最多31天!!!\n");
}
bre**;
case4:case6:
case9:case11:
{
if(date<=30)
{
intsumday(intdate,intyear,intmouth);
c=sumday(date,year,mouth);
printf("%4d\n",c);
}
elseprintf("您输入的月份最多30天!!!\n");
}
bre**;
case2:
if((year%4==0&&year%100!=0)||(year%400==0))
{
if(date<=29)
{
intsumday(intdate,intyear,intmouth);
c=sumday(date,year,mouth);
printf("%4d\n",c);
}
elseprintf("您输入的月份最多29天!!!\n");
}
elseif((year%4!=0)||(year%100==0&&year%400!=0))
{
if(date<=28)
{
intsumday(intdate,intyear,intmouth);
c=sumday(date,year,mouth);
printf("%d\n",c);
}
elseprintf("您输入的月份最多28天!!!\n");
}
bre**;
default:printf("您输入的月份错误!!!");
}
}
elseprintf("您输入的年份有误!!!\n");
if(c>=1&&c<=3)//判断在干嘛?
printf("渔民这天在打渔!!!\n");
elseif(c==4||c==0)
printf("渔民这天在晒网!!!\n");
else
printf("您输入的年份有误,或者渔民还没开始打鱼晒网!!\n");
printf("总天数=%d\n",day);
return0;
}
//日期循环累加的函数,然互求余的函数
intsumday(intdate,intyear,intmouth)
{
intday=0,leap=0,c=0;
while(year>=2000)
{
if((year%4==0&&year%100!=0)||(year%400==0))
{leap=1;}
else
{leap=0;}//判断是否是瑞年
if(leap)//然后加不同的二月日期
{
switch(mouth)
{
case12:day=31+29+31+30+31+30+31+31+30+31+30+date;bre**;
case11:day=31+29+31+30+31+30+31+31+30+31+date;bre**;
case10:day=31+29+31+30+31+30+31+31+30+date;bre**;
case9:day=31+29+31+30+31+30+31+31+date;bre**;
case8:day=31+29+31+30+31+30+31+date;bre**;
case7:day=31+29+31+30+31+30+date;bre**;
case6:day=31+29+31+30+31+date;bre**;
case5:day=31+29+31+30+date;bre**;
case4:day=31+29+31+date;bre**;
case3:day=31+29+date;bre**;
case2:day=31+date;bre**;
case1:day=date;bre**;
}
}
else
{
switch(mouth)
{
case12:day=31+28+31+30+31+30+31+31+30+31+30+date;bre**;
case11:day=31+28+31+30+31+30+31+31+30+31+date;bre**;
case10:day=31+28+31+30+31+30+31+31+30+date;bre**;
case9:day=31+28+31+30+31+30+31+31+date;bre**;
case8:day=31+28+31+30+31+30+31+date;bre**;
case7:day=31+28+31+30+31+30+date;bre**;
case6:day=31+28+31+30+31+date;bre**;
case5:day=31+28+31+30+date;bre**;
case4:day=31+28+31+date;bre**;
case3:day=31+28+date;bre**;
case2:day=31+date;bre**;
case1:day=date;bre**;
}//每年的日期累加
year=year-1;//从开始的那年逐减
}
}
c=day%5;//求余运算
return(c);
}
详细问题描述及疑问:
这个程序,我修改了好多遍,语法没有错误,但却还是执行不了!
#include<stdio.h>
intmain(void)
{
intyear=0,leap=0,mouth=0,date=0,d=0,c=9,day=0;
printf("enteryearmouthdate\n");
scanf("%d%d%d",&year,&mouth,&date);
//月份的天数,**判断,检查输入
if(year>=2000)
{
switch(month)//检查日期
{
case1:case3:case5:
case7:case8:case10:
case12:
{
if(date<=31)
{
intsumday(intdate,intyear,intmouth);
c=sumday(date,year,mouth);
printf("%4d\n",c);
}
elseprintf("您输入的月份最多31天!!!\n");
}
bre**;
case4:case6:
case9:case11:
{
if(date<=30)
{
intsumday(intdate,intyear,intmouth);
c=sumday(date,year,mouth);
printf("%4d\n",c);
}
elseprintf("您输入的月份最多30天!!!\n");
}
bre**;
case2:
if((year%4==0&&year%100!=0)||(year%400==0))
{
if(date<=29)
{
intsumday(intdate,intyear,intmouth);
c=sumday(date,year,mouth);
printf("%4d\n",c);
}
elseprintf("您输入的月份最多29天!!!\n");
}
elseif((year%4!=0)||(year%100==0&&year%400!=0))
{
if(date<=28)
{
intsumday(intdate,intyear,intmouth);
c=sumday(date,year,mouth);
printf("%d\n",c);
}
elseprintf("您输入的月份最多28天!!!\n");
}
bre**;
default:printf("您输入的月份错误!!!");
}
}
elseprintf("您输入的年份有误!!!\n");
if(c>=1&&c<=3)//判断在干嘛?
printf("渔民这天在打渔!!!\n");
elseif(c==4||c==0)
printf("渔民这天在晒网!!!\n");
else
printf("您输入的年份有误,或者渔民还没开始打鱼晒网!!\n");
printf("总天数=%d\n",day);
return0;
}
//日期循环累加的函数,然互求余的函数
intsumday(intdate,intyear,intmouth)
{
intday=0,leap=0,c=0;
while(year>=2000)
{
if((year%4==0&&year%100!=0)||(year%400==0))
{leap=1;}
else
{leap=0;}//判断是否是瑞年
if(leap)//然后加不同的二月日期
{
switch(mouth)
{
case12:day=31+29+31+30+31+30+31+31+30+31+30+date;bre**;
case11:day=31+29+31+30+31+30+31+31+30+31+date;bre**;
case10:day=31+29+31+30+31+30+31+31+30+date;bre**;
case9:day=31+29+31+30+31+30+31+31+date;bre**;
case8:day=31+29+31+30+31+30+31+date;bre**;
case7:day=31+29+31+30+31+30+date;bre**;
case6:day=31+29+31+30+31+date;bre**;
case5:day=31+29+31+30+date;bre**;
case4:day=31+29+31+date;bre**;
case3:day=31+29+date;bre**;
case2:day=31+date;bre**;
case1:day=date;bre**;
}
}
else
{
switch(mouth)
{
case12:day=31+28+31+30+31+30+31+31+30+31+30+date;bre**;
case11:day=31+28+31+30+31+30+31+31+30+31+date;bre**;
case10:day=31+28+31+30+31+30+31+31+30+date;bre**;
case9:day=31+28+31+30+31+30+31+31+date;bre**;
case8:day=31+28+31+30+31+30+31+date;bre**;
case7:day=31+28+31+30+31+30+date;bre**;
case6:day=31+28+31+30+31+date;bre**;
case5:day=31+28+31+30+date;bre**;
case4:day=31+28+31+date;bre**;
case3:day=31+28+date;bre**;
case2:day=31+date;bre**;
case1:day=date;bre**;
}//每年的日期累加
year=year-1;//从开始的那年逐减
}
}
c=day%5;//求余运算
return(c);
}