黑马程序员技术交流社区
标题: 和大家分享一道题觉 [打印本页]
作者: ★彬★卍囧神 时间: 2014-5-21 21:11
标题: 和大家分享一道题觉
/*10、小明从2006年1月1日开始,每三天结识一个美女两天结识一个帅哥,
编程实现当输入2006年1月1日之后的任意一天,
输出小明那天是结识美女还是帅哥(注意润年问题)(C语言)*/
#include <stdio.h>
int main()
{
intrunnian(int *p, int *q);
intt,n,y,r; //1.y表示第几个月 r表示第几日 t表示2月多少天 n表示当前共多少天
inta; //2.表示年份
ints; //3.表示存在多少个闰年
intday; //4.总过多少天
s= runnian(&t, &a);//5.调用ruannian()函数,返回有几个闰年
printf("请输入月份:\n");//6.按要求输入月份输入
scanf("%d",&y);
while ( (y >=12) || (0 >= y) ){
printf("输入错误请重新输入月份:\n");
scanf("%d",&y);
}
printf("请输入日:\n"); //7.按要求输入日
scanf("%d",&r);
while( (r >=31) || (0 >= r) ){
printf("输入错误请重新输入日:\n");
scanf("%d",&r);
}
{
if(y== 12) //8.判断是哪个月,计算出在当年中总共的天数
n= 6*31+4*30+t+r;
elseif(y ==11)
n= 6*31+3*30+t+r;
elseif(y == 10)
n= 5*31+3*30+t+r;
elseif(y == 9)
n= 5*31+2*30+t+r;
elseif(y == 8)
n= 4*31+2*30+t+r;
elseif(y ==7)
n= 3*31+2*30+t+r;
elseif(y == 6)
n= 3*31+1*30+t+r;
elseif(y == 5)
n= 2*31+1*30+t+r;
elseif(y == 4)
n= 2*31+0*30+t+r;
elseif(y ==3)
n= 31+t+r;
elseif(y== 2)
n= 31+r;
elseif(y == 1)
n= r;
}
day= n+s+365*(a-2006)-1; //9.计算出总过的天数
if("day%3 == 1")
printf("第%d天遇到的是美女\n",day);//10.打印出遇到的是美女还是帅哥
else
printf("第%d天遇到的是帅哥\n",day);
return0;
}
int runnian(int *p, int *q)
{
intnum=0; //1.num用来记录有多少闰年
printf("请输入年份:\n"); //2.按要求输入年份 年份必须大于2006
scanf("%d",q);
while( *q <= 2006 ){
printf("输入错误请重新输入年份:\n");
scanf("%d",q);
}
for(inti=0; i<=*q-2006 ;i++) //3.循环判断这之间的年份是否有闰年,有计数加以且是闰年就将2月定为29天否则28天
{
if((2006+i)%400 == 0 )
{
*p=29;
num++;
}
elseif( ( (2006+i)%4 == 0) && ( (2006+i)%100 != 0) )
{
*p=29;
num++;
}
else
*p=28;
}
returnnum; //4.返回有几个闰年
}
作者: tony_ygz 时间: 2014-5-22 21:21
赞一个······
作者: ★彬★卍囧神 时间: 2014-5-23 10:46
最近发帖都不加分了哎
作者: ★彬★卍囧神 时间: 2014-5-23 11:06
:L原来是这样啊
作者: qddnovo 时间: 2014-6-7 17:31
现在回帖加分了。。。
| 欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |