标题:前辈请指教
只看楼主
帝师
Rank: 2
来 自:湖南
等 级:论坛游民
帖 子:166
专家分:92
注 册:2018-10-11
结帖率:92.31%
 问题点数:0 回复次数:1 
前辈请指教
题目:
6、伦敦奥运会倒计时

题目描述

假定现在已是2012年,请编写程序,计算2012年伦敦奥运会倒计时的天数并输出。已知伦敦奥运会的开幕日期是2012年7月27日。用户输入日期的范围必须是2012年1月1日— 2012年7月26日。要求程序中编写函数int CountDown(int year,int month,int day),来计算从用户输入的日期year-month-day到伦敦奥运会开幕日之间的倒数天数。

提示:所求天数= month这个月的总天数-day+(month+1到6月所有这些月份天数之和)+27。此程序可适当地参考实验预习3中程序设计题1。            

输入描述

用户输入的日期的格式必须是year  month day。其中year应是2012,month必须满足1≤month≤7。输入的数据之间用空格隔开。            

输出描述

输出为一行“距离2012伦敦奥运会还有x天。”,其中x为求出的倒计时的天数。            

样例输入

2012 2 5               

样例输出

距离2012伦敦奥运会还有173天。


我的代码:(这里i=month,i++啊应该是从下个月开始加一直加到六月啊,可得出的值十分小,不知道算法哪里出错了)
#include<stdio.h>
int main()
{
    int CountDown(int year,int month,int day);
    int y,m,d;
    int aum;
    scanf("%d %d %d",&y,&m,&d);
    if(m>=1 && m<=7)
    {
    aum=CountDown(y,m,d);
    printf("距离%d伦敦奥运会还有%d天。\12",y,aum);
    }
    else
        printf("ERROR\12");




}
int CountDown(int year,int month,int day)
{
    int sum;
    int t[6]={31,29,31,30,31,30};
    int i;
    for(i=month;i<6;i++)
    {
    if(month==2)
   
    sum=29-day+t[i]+27;
   
    else if(month%2==0)
   
        sum=30-day+t[i]+27;

    else if(month%2!=0)
   
        sum=31-day+t[i]+27;
   
    }
    return (sum);
        

}
搜索更多相关主题的帖子: 天数 输入 int year sum 
2018-11-26 19:48
莱茵瓶
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:32
专家分:103
注 册:2018-10-30
得分:0 
sum=29-day+t[i]+27;这样写没有累加
c=c+t[i];
sum=29-day+c+27;
int CountDown函数写的很乱 问题很多
而且既然列出了几个月份的天数 为什么不直接sum=t[month-1]-day+t[i]+27; 还要判断
建议重新写一下
2018-12-18 15:01



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-491581-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.261828 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved