| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 819 人关注过本帖
标题:一个C语言小程序求助各位!先谢了~
只看楼主 加入收藏
more5039
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2010-3-24
结帖率:0
收藏
已结贴  问题点数:10 回复次数:9 
一个C语言小程序求助各位!先谢了~
编写一个计算天数的程序,用户从键盘输入年、月、日
    在屏幕上输出此日期是该年第几天。以下是我写的。。。但是感觉不够完善。。希望在键盘输入的时候搞个判断。。如果年份为负数以及月份大于13  天数大于31 就提示并且让你重新输入。。。请问代码怎样加?while循环?

程序代码:
/*
    编写一个计算天数的程序,用户从键盘输入年、月、日
    在屏幕上输出此日期是该年第几天。
*/

# include <stdio.h>

int leap(int a);
int WitchDay(int y, int m, int d);
int panduan(int y, int m, int d);

int main()
{
    int year, month, day, s;
    printf("请输入年、月、日:\n");
    scanf("%d%d%d", &year, &month, &day);    
    s = WitchDay(year, month, day);
    s = s + day;
    printf("%d年%d月%d日是该年第%d天!\n", year, month, day, s);

    return 0;
}

int leap(int a)     /* 此函数用于判断是否为闰年 */
{
    if(a%4==0 && a%100!=0 || a%400==0)
        return 1;
    else
        return 0;
}

int WitchDay(int y, int m, int d)
{
    int i, sum = 0;
    int a[12]={31,28,31,30,31,30,31,31,30,31,30,31};
    int b[12]={31,29,31,30,31,30,31,31,30,31,30,31};
    if(leap(y)==1)
    {
        for (i=0; i<m-1;i++)
            sum = sum + b[i];
    }
    else
        for (i=0; i<m-1; i++)
            sum = sum + a[i];
        return sum;
}
搜索更多相关主题的帖子: C语言 键盘 用户 
2013-07-24 13:07
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:2 
if goto

DO IT YOURSELF !
2013-07-24 13:31
more5039
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2010-3-24
收藏
得分:0 
回复 2楼 wp231957
代码具体怎么修改?
2013-07-24 13:34
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
int main()
{
    int year, month, day, s;
loop1:   
    printf("请输入年、月、日:\n");
    scanf("%d%d%d", &year, &month, &day);
    if (day>31)  goto loop1;   
    s = WitchDay(year, month, day);
    s = s + day;
    printf("%d年%d月%d日是该年第%d天!\n", year, month, day, s);

    return 0;
}


DO IT YOURSELF !
2013-07-24 13:38
天楚
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:楚地
等 级:小飞侠
帖 子:550
专家分:2113
注 册:2013-3-14
收藏
得分:2 
if goto 还是少用,我老师在教c语言的时候说的!至于方法我还在想!

没有哪条路好走,选择了,就坚持下去~~~~
2013-07-24 17:42
岁月如刀
Rank: 6Rank: 6
来 自:冰冻星球
等 级:侠之大者
威 望:7
帖 子:165
专家分:477
注 册:2013-7-21
收藏
得分:2 
以下是引用天楚在2013-7-24 17:42:07的发言:

if goto 还是少用,我老师在教c语言的时候说的!至于方法我还在想!


恩。老师说得好啊~~~


Now. Game over.
2013-07-24 18:04
天楚
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:楚地
等 级:小飞侠
帖 子:550
专家分:2113
注 册:2013-3-14
收藏
得分:0 
if goto 还是少用,我老师在教c语言的时候说的!至于方法我还在想!

没有哪条路好走,选择了,就坚持下去~~~~
2013-07-24 18:52
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
老师说的就一定是正确的吗

DO IT YOURSELF !
2013-07-25 08:14
小小程序猿
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:1
帖 子:755
专家分:2785
注 册:2013-7-18
收藏
得分:2 
个人认为,能用简单的代码搞定的,就尽量别用太麻烦的或者看不懂的代码

孤独与寂寞是催化一个人迅速成长的良药,没有之一
2013-07-25 08:33
pangshch
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:2
帖 子:443
专家分:1966
注 册:2013-4-9
收藏
得分:2 
int main()
{
    int year, month, day, s;
    do {
    printf("请输入年、月、日:\n");
    scanf("%d%d%d", &year, &month, &day);
    }
    while(year < 0 || month > 13 || day > 31);

    s = WitchDay(year, month, day);
    s = s + day;
    printf("%d年%d月%d日是该年第%d天!\n", year, month, day, s);

    return 0;
}

2013-07-25 09:06
快速回复:一个C语言小程序求助各位!先谢了~
数据加载中...
 
   



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

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