标题:求助 某年某月某日,判断这一天是这一年的第几天?
只看楼主
witjay
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2011-3-10
结帖率:83.33%
已结贴  问题点数:20 回复次数:9 
求助 某年某月某日,判断这一天是这一年的第几天?
    题目:输入某年某月某日,判断这一天是这一年的第几天?
为什么运行后输出的都是乱七八糟的数字 还带个负号,是编译器的问题吗? 求解答

#include <stdio.h>void main()
{   
    int day,month,year,sum,leap;
    printf("please input year,month,day\n");
    scanf("%d,%d,%d",&year,&month,&day);
    switch(month)
    {case 1:sum=0;break;
      case 2:sum=31;break;
        case 3:sum=59;break;
            case 4:sum=90;break;
                case 5:sum=120;break;
                    case 6:sum=151;break;
                        case 7:sum=181;break;
                            case 8:sum=212;break;
                                case 9:sum=243;break;
                                    case 10:sum=273;break;
                                        case 11:sum=304;break;
                                            case 12:sum=334;break;
                                            default: printf("error");
    }
    sum=sum+day;
    if(year%400==0||(year%100==0&&year%100!=0))
        leap=1;
    else
        leap=0;
    if(leap==1&&month>2)
        sum++;
    printf("the sum is %d",sum);
}

[ 本帖最后由 witjay 于 2011-3-10 22:12 编辑 ]
搜索更多相关主题的帖子: input 编译器 
2011-03-10 22:04
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
得分:0 
好漂亮~的代码!~

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-03-10 22:09
qhxxbc
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:163
专家分:174
注 册:2010-9-14
得分:0 
没问题啊!是让大家鉴赏?

非计算机专业自学新手向大家请教
2011-03-10 22:16
witjay
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2011-3-10
得分:0 
回复 3楼 qhxxbc
我用vc6.0 运行 出来的结果都是 一个很大的负数  貌似10几位数 不知道什么原因
2011-03-10 22:20
qhxxbc
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:163
专家分:174
注 册:2010-9-14
得分:10 
scanf("%d,%d,%d",&year,&month,&day);
输入时要注意输入法是英文

非计算机专业自学新手向大家请教
2011-03-10 22:27
witjay
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2011-3-10
得分:0 
回复 5楼 qhxxbc
是英文的 还是一样  估计编译器出问题了
2011-03-10 22:31
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
得分:10 
程序代码:
root@~ #cat n.c
#include <stdio.h>
int main(void) {

        int day,month,year,sum=0,leap;
    printf("please input year,month,day\n");
    scanf("%d,%d,%d",&year,&month,&day); //sannf里要求的格式是:yyyy,mm,dd ,注意不要用全角
    switch(month) {
                case 1:sum=0;break;
                case 2:sum=31;break;
                case 3:sum=59;break;
                case 4:sum=90;break;
                case 5:sum=120;break;
                case 6:sum=151;break;
                case 7:sum=181;break;
                case 8:sum=212;break;
                case 9:sum=243;break;
                case 10:sum=273;break;
                case 11:sum=304;break;
                case 12:sum=334;break;
                default: printf("error");
    }
    sum=sum+day;
    if(year%400==0||(year%100==0&&year%100!=0)) {
        leap=1;
    }else{
        leap=0;
        }
    if(leap==1&&month>2) {
        sum++;
        }
    printf("the sum is %d",sum);

        return 0;

}

gcc编译并通过!
root@~ #./n
please input year,month,day //输入的时候一定要按照scanf里的要求,即,年月日之间用逗号分隔。
2011,3,10
the sum is 69

[ 本帖最后由 ansic 于 2011-3-10 22:33 编辑 ]

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-03-10 22:32
qhxxbc
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:163
专家分:174
注 册:2010-9-14
得分:0 
回复 6楼 witjay
我用你的程序能行
不切换输入的法的话就出现随机负数

非计算机专业自学新手向大家请教
2011-03-10 22:33
wamxm
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2011-3-10
得分:0 
新人报道,见贴就顶!
2011-03-10 22:34
witjay
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2011-3-10
得分:0 
回复 7楼 ansic
多谢  忘了打逗号了
2011-03-10 22:39



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




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

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