#include <stdio.h>
#include<stdlib.h>
int DayofYear(int year, int month, int day);
void MonthDay(int year, int yearDay, int *pMonth, int *pDay);
int main()
{
int num;
int year,month,day,yearDay;
int a;
int *pMonth,*pDay;
printf("1. year/month/day -> yearDay\n2. yearDay -> year/month/day\n3. Exit\nPlease enter your choice:");
scanf("%d",&num);
switch(num)
{
case 1:
printf("Please enter year, month, day:");
scanf("%d,%d,%d",&year,&month,&day);
a = DayofYear(year, month, day);
printf("yearDay = %d\n",a);
break;
case 2:
printf("Please enter year, yearDay:");
scanf("%d,%d",&year,&yearDay);
MonthDay(year, yearDay, &month, &day);
break;
case 3:
break;
}
int DayofYear(int year, int month, int day)
{
int a=0,i,m[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
if(year%4==0&&year%100!=0||year%400==0)
{
m[2]=29;
}
for(i=1;i<month;i++)
{
a += m[i];
}
a = a + day;
return a;
}
void MonthDay(int year, int yearDay, int *pMonth, int *pDay)
{
*pMonth = 0;
*pDay = 0;
int i = 1;
int m[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int s = 0;
if((year%4 == 0&&year%100 != 0)||(year%400 == 0))
{
m[3] = 29;
}
do
{
s += m[i];
i++;
}while(s < yearDay);
*pMonth = (i-1);
*pDay = yearDay - (s-m[i]);
printf("month = %d, day = %d\n",*pMonth,*pDay);
}
}
c语言 简单问题 怎么改 不懂报错 1111111111111111
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答
- liefengxixi 2019-03-17 09:06关注
楼主在main函数里定义了其他函数了,这是不行的,函数里不能嵌套定义其他函数,应该这么改。
此外最下面那个函数我对一处进行了修改,目前测试完全没有问题了。#include <stdio.h> #include<stdlib.h> int DayofYear(int year, int month, int day); void MonthDay(int year, int yearDay, int *pMonth, int *pDay); int main() { int num; int year,month,day,yearDay; int a; int *pMonth,*pDay; printf("1. year/month/day -> yearDay\n2. yearDay -> year/month/day\n3. Exit\nPlease enter your choice:"); scanf("%d",&num); switch(num) { case 1: printf("Please enter year, month, day:"); scanf("%d,%d,%d",&year,&month,&day); a = DayofYear(year, month, day); printf("yearDay = %d\n",a); break; case 2: printf("Please enter year, yearDay:"); scanf("%d,%d",&year,&yearDay); MonthDay(year, yearDay, &month, &day); break; case 3: break; } } int DayofYear(int year, int month, int day) { int a=0,i,m[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; if(year%4==0&&year%100!=0||year%400==0) { m[2]=29; } for(i=1;i<month;i++) { a += m[i]; } a = a + day; return a; } void MonthDay(int year, int yearDay, int *pMonth, int *pDay) { *pMonth = 0; *pDay = 0; int i = 1; int m[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; int s = 0; if((year%4 == 0&&year%100 != 0)||(year%400 == 0)) { m[3] = 29; } do { s += m[i]; i++; }while(s < yearDay); *pMonth = i-1; *pDay = yearDay - (s-m[i-1]); //这里进行了修改 printf("month = %d, day = %d\n",*pMonth,*pDay); }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 3无用 1
悬赏问题
- ¥30 这是哪个作者做的宝宝起名网站
- ¥60 版本过低apk如何修改可以兼容新的安卓系统
- ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
- ¥50 有数据,怎么建立模型求影响全要素生产率的因素
- ¥50 有数据,怎么用matlab求全要素生产率
- ¥15 TI的insta-spin例程
- ¥15 完成下列问题完成下列问题
- ¥15 C#算法问题, 不知道怎么处理这个数据的转换
- ¥15 YoloV5 第三方库的版本对照问题
- ¥15 请完成下列相关问题!