| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1516 人关注过本帖
标题:找不到突破口啊~~~~求帮助
只看楼主 加入收藏
凌风一指
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:26
专家分:181
注 册:2011-11-9
收藏
得分:0 
温馨提示:上面的哪个程序存在逻辑错误。当你输入的数据是错误的时候,也能够输出天数,输出的是错误的天数。
原因在于只对月进行了检测,忽略了天数的检测。

实践出真知!大家还是在机子上面运行一下吧!
2011-11-10 17:07
玉立
Rank: 2
等 级:论坛游民
帖 子:32
专家分:24
注 册:2011-10-17
收藏
得分:0 
回复 15楼 qp785210028
你这个好像在运行时存在一些小问题哦
2011-11-10 17:09
luchar
Rank: 9Rank: 9Rank: 9
来 自:南京
等 级:蜘蛛侠
帖 子:279
专家分:1263
注 册:2011-11-3
收藏
得分:0 
回复 21楼 凌风一指
关于输入的数据是否错误,只要加一段检测输入数据正确与否的代码就行了
现在的问题只是要得到这么一个结果,先不考虑输入的数据是否正确。
2011-11-10 17:15
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
嗯,新手是应该对这种小程序多琢磨一下,力求把它做完美,比如检测非法数据输入,有追求的就要想办法解决它。不要视程序小而不屑为,小的做不好,大的也做同样做不了。

授人以渔,不授人以鱼。
2011-11-10 17:26
凌风一指
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:26
专家分:181
注 册:2011-11-9
收藏
得分:5 
呵呵,楼上的说的是啊!
这个是本人写的,新手一个,第一次发帖,有不好的地方,请指出来啊!
#include<stdio.h>
#include<math.h>
main()
{
    int year,mouth,day;
    int Days=0;//Days代表第多少天
    int i;
    int flag=1;//标记输入的数据是否正确,1表示正确
    int flag1=1;//标记平年和闰年,1表示平年
    int d[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};//定义的数组
    printf("Please input: year mouth day\n");
    scanf("%d %d %d",&year,&mouth,&day);
    if((year%4==0&&year%100!=0)||(year%400==0))//若是闰年的时候就修改一下二月
    {
        d[2]=29;
        flag1=0;//修改了平年标识,现在表示是闰年
    }
    switch(mouth)//对月份、天数的检测
    {
    case 1:
    case 3:
    case 5:
    case 7:
    case 8:
    case 10:
    case 12:
        if(day<1||day>31)
            flag=0;
        break;
    case 4:
    case 6:
    case 9:
    case 11:
        if(day<1||day>30)
            flag=0;
        break;
    case 2:
            if(flag1=0&&(day<1||day>29))
                flag=0;
            else if(flag1=1&&(day<1||day>28))
                flag=0;
            break;
    default:flag=0;break;
    }
    //计算天数
    for(i=1;i<=mouth-1;i++)
    {
        Days=Days+d[i];//计算前mouth-1月的天数
    }
    Days=Days+day;
    //判断输出
    if(flag==1)
        printf("Days:%d\n",Days);
    else
        printf("Input Error!\n");
}
2011-11-10 17:32
凌风一指
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:26
专家分:181
注 册:2011-11-9
收藏
得分:0 
回复 22楼 玉立
呵呵,关键是你输入的天数不存在,得出的结果也是错的。
大的不说,就拿2001年2月29日输入的话,他的程序能得出结果,但是对吗?
不对,因为那一天不存在。

[ 本帖最后由 凌风一指 于 2011-11-10 17:47 编辑 ]
2011-11-10 17:41
tan2010
Rank: 2
等 级:论坛游民
帖 子:66
专家分:71
注 册:2011-10-13
收藏
得分:0 
呵呵!
2011-11-10 19:37
qp785210028
Rank: 2
等 级:论坛游民
帖 子:37
专家分:52
注 册:2011-10-31
收藏
得分:0 
回复 16楼 TonyDeng
额...谢谢!  只是我现在还没学到数组, 还要学学.
2011-11-11 10:48
qp785210028
Rank: 2
等 级:论坛游民
帖 子:37
专家分:52
注 册:2011-10-31
收藏
得分:0 
回复 22楼 玉立
额 ...  谢谢指教咯
2011-11-11 10:49
快速回复:找不到突破口啊~~~~求帮助
数据加载中...
 
   



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

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