#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
悬赏问题
- ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
- ¥15 错误 LNK2001 无法解析的外部符号
- ¥50 安装pyaudiokits失败
- ¥15 计组这些题应该咋做呀
- ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
- ¥15 让node服务器有自动加载文件的功能
- ¥15 jmeter脚本回放有的是对的有的是错的
- ¥15 r语言蛋白组学相关问题
- ¥15 Python时间序列如何拟合疏系数模型
- ¥15 求学软件的前人们指明方向🥺