| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 811 人关注过本帖
标题:可以运行,但是结果有点奇怪,求助~
只看楼主 加入收藏
ai_44
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2011-9-26
结帖率:66.67%
收藏
已结贴  问题点数:5 回复次数:16 
可以运行,但是结果有点奇怪,求助~
程序代码:
#include <stdio.h>
int main()
{
    int year,month,day,a,alldays,c;
    printf("请输入年月日:xxxx.x.x\n");
    scanf("%d.%d.%d",&year,&month,&day);
    
    switch(month)
    {
        case 1:a=0;break;
        case 2:a=31;break; 
        case 3:a=59;break;
        case 4:a=90;break;
        case 5:a=120;break;
        case 6:a=151;break;
        case 7:a=181;break;
        case 8:a=212;break;
        case 9:a=243;break;
        case 10:a=273;break;
        case 11:a=304;break;
        case 12:a=334;break;
    }
    if((year%4==0) && (month>2))
    {
        
        alldays=a+day+1;
        c=alldays%5;
      
      if(1 <= c <= 3)
        {
        printf("这个人在打渔");
        }
      if((c == 4)&&(c == 0))
        printf("这个人在晒网");
    }
    else
    { 
        alldays=a+day;
        c=alldays%5;
         if(1 <= c <=3)
        {
        printf("这个人在打渔");
        }
        if((c == 4)&&(c == 0))
        printf("这个人在晒网");
    }
    getchar();
    getchar();
    return 0;

}




1、    一、中国有句俗语叫“三天打鱼两天晒网”。某人从每年1月1日起开始“三天打鱼两天晒网”,问这个人在该年的某一天是“打鱼”还是“晒网”。

无论输入什么年月日 结果都是打渔。。。自己找不到是哪个地方有问题。。。
2011-10-25 20:17
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
闰年的计算公式不对

重剑无锋,大巧不工
2011-10-25 20:25
ai_44
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2011-9-26
收藏
得分:0 
计算闰年公式改成
if(((year%4==0) && (year%100!=0)) || (year%400==0) && (month>2))
结果还是一样。。。
2011-10-25 20:35
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:5 
if((c == 4)&&(c == 0))换成 if((c == 4)||(c == 0))

重剑无锋,大巧不工
2011-10-25 20:37
huangying116
Rank: 1
等 级:新手上路
帖 子:8
专家分:1
注 册:2011-10-1
收藏
得分:0 
#include <stdio.h>
int main()
{
    int year,month,day,a,alldays,c;
    printf("请输入年月日:xxxx.x.x\n");
    scanf("%d.%d.%d",&year,&month,&day);

    switch(month)
    {
        case 1:a=0;break;
        case 2:a=31;break;
        case 3:a=59;break;
        case 4:a=90;break;
        case 5:a=120;break;
        case 6:a=151;break;
        case 7:a=181;break;
        case 8:a=212;break;
        case 9:a=243;break;
        case 10:a=273;break;
        case 11:a=304;break;
        case 12:a=334;break;
    }
    if((year%4==0) && (month>2))
    {

        alldays=a+day+1;
        c=alldays%5;

      if(1 <= c <= 3)
        {
        printf("这个人在打渔");
        }
      if((c == 4)||(c == 0))
        printf("这个人在晒网");
    }
    else
    {
        alldays=a+day;
        c=alldays%5;
         if(1 <= c <=3)
        {
        printf("这个人在打渔");
        }
        if((c == 4)||(c == 0))
        printf("这个人在晒网");
    }
    getchar();
    getchar();
    return 0;

}

2011-10-25 20:38
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
还有闰年判断换成下面这句。
if((year%4==0 && year%100!=0 || year%400==0) && month>2)
 

重剑无锋,大巧不工
2011-10-25 20:39
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
没注意,这是什么?if(1 <= c <= 3)
这不是在写数学草稿
写成if(c >= 1 && c <= 3)

重剑无锋,大巧不工
2011-10-25 20:41
ai_44
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2011-9-26
收藏
得分:0 
呵呵  刚刚自己也发现了~~
2011-10-25 20:41
ai_44
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2011-9-26
收藏
得分:0 
程序代码:
#include <stdio.h>
int main()
{
    int year,month,day,a,alldays,c;
    printf("请输入年月日:xxxx.x.x\n");
    scanf("%d.%d.%d",&year,&month,&day);
    
    switch(month)
    {
        case 1:a=0;break;
        case 2:a=31;break; 
        case 3:a=59;break;
        case 4:a=90;break;
        case 5:a=120;break;
        case 6:a=151;break;
        case 7:a=181;break;
        case 8:a=212;break;
        case 9:a=243;break;
        case 10:a=273;break;
        case 11:a=304;break;
        case 12:a=334;break;
    }
    if(  ( ((year%4==0) && (year%100!=0)) || (year%400==0) ) && (month>2))
    {
        alldays=a+day+1;
        c=alldays%5;
      
       if((c<=1) && (c<=3))
        {printf("这个人在打渔");}
       if((c==4)||(c==0))
        {printf("这个人在晒网");}
    }
   
    else
    { 
        alldays=a+day;
        c=alldays%5;
         if((c<=1) && (c<=3))
        {printf("这个人在打渔");}
        if((c==4)||(c==0))
        {printf("这个人在晒网");}
    }
    getchar();
    getchar();
    return 0;

}


晕 。。。又出现一些莫名其妙的错误。。。比如说我输2011.10.25 没有结果。。总天数是5的倍数时 结果是:这个人在打渔这个人在晒网
。。。
2011-10-25 21:16
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
if((c<=1) && (c<=3))改成if(c >= 1 && c <= 3)
 

重剑无锋,大巧不工
2011-10-25 21:19
快速回复:可以运行,但是结果有点奇怪,求助~
数据加载中...
 
   



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

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