题目:
用户提供一个月份,该函数就返回一年中到该月为止的总天数
源代码:
#include <stdio.h>
struct MONTH{
char mon[10];
char mon_abb[3];
int day;
int month;
};
struct MONTH months[12] =
{
{"January","Jan",31,1},
{"February","Feb",28,2},
{"March","Mar",31,3},
{"April","Apr",30,4},
{"May","May",31,5},
{"June","Jun",30,6},
{"July","Jul",31,7},
{"August","Aug",31,8},
{"September","Sep",30,9},
{"October","Oct",31,10},
{"November","Nov",30,11},
{"December","Dec",31,12},
};
int mon_day(int mon);
int main()
{
int mon;
printf("请输入一个月份: ");
scanf("%d",&mon);
printf("今年截止到当月为止的天数是: %d",mon_day(mon));
return 0;
}
int mon_day(int mon)
{
int total=0;
for(int i=0;i<mon;i++) total += months[i].day;
return total;
}
演示效果:
代码改进:
用月份名的拼写代替月份号
源代码:
#include <stdio.h>
#include <string.h>
#define ROW 10
struct MONTH{
char mon[10];
char mon_abb[3];
int day;
int month;
};
struct MONTH months[12] =
{
{"January","Jan",31,1},
{"February","Feb",28,2},
{"March","Mar",31,3},
{"April","Apr",30,4},
{"May","May",31,5},
{"June","Jun",30,6},
{"July","Jul",31,7},
{"August","Aug",31,8},
{"September","Sep",30,9},
{"October","Oct",31,10},
{"November","Nov",30,11},
{"December","Dec",31,12},
};
int mon_day(char mon[ROW]);
int main()
{
char ch[ROW];
printf("请输入一个月份名: ");
scanf("%s",ch);
printf("今年截止到当月为止的天数是: %d",mon_day(ch));
return 0;
}
int mon_day(char mon[ROW])
{
int total=0;
for(int j = 0;j < 12;j++)
{
if(strcmp(months[j].mon,mon) == 0)//一般情况下0为假,所以这里必须使用==0判断,使判断结果为1才能为真。
{
for(int i=0;i<=j;i++) total += months[i].day;
return total;
}
}
return -1;
}
演示效果:
如果朋友你感觉文章的内容对你有帮助,可以点赞,关注文章和专栏以及关注我哈,嘿嘿嘿我会定期更新文章的,谢谢朋友你的支持哈