| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1093 人关注过本帖
标题:各位大侠,看我这个程序哪里错了?
只看楼主 加入收藏
l3315534
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2009-12-28
结帖率:50%
收藏
已结贴  问题点数:5 回复次数:10 
各位大侠,看我这个程序哪里错了?
#include<stdio.h>
int main(void)
{
    int year,month,day;
    int day_of_year(int year,int month,int day);
    printf("year,month,day:");
    scanf("%d%d%d",&year,&month,&day);
    day_of_year(year,month,day);
    printf("days of year:%d\n",day);
    return 0;
}
int day_of_year(int year,int month,int day)
{
    int k,leap;
    int tab[2][3]={
        {0,31,28,31,30,31,30,31,31,30,31,30,31},
        {0,31,29,31,30,31,30,31,31,30,31,30,31}
    };
    leap=(year%4==0&&year%100!=0||year%400==0);
    for(k=1;k<month;k++)
        day=day+tab[leap][k];
    return day;
}
搜索更多相关主题的帖子: void include return 
2009-12-28 08:46
jcslt
Rank: 8Rank: 8
来 自:90-xx.com
等 级:蝙蝠侠
帖 子:251
专家分:975
注 册:2009-10-10
收藏
得分:0 
手机上观察tab2,13

www.
2009-12-28 09:18
风之上位
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:55
专家分:156
注 册:2009-12-20
收藏
得分:0 
数组赋值越界了
2009-12-28 09:23
UserYuH
Rank: 12Rank: 12Rank: 12
来 自:毅华
等 级:火箭侠
威 望:8
帖 子:720
专家分:3300
注 册:2009-8-10
收藏
得分:0 
·
·
day_of_year(year,month,day); /* 没接收day_of_year函数的反回值 */
    printf("days of year:%d\n",day);
    return 0;
}
int day_of_year(int year,int month,int day)
{
    int k,leap;
    int tab[2][3]={          /* 数组定义小了 */
·
·

程序代码:
#include<stdio.h>
int main(void)
{
    int year,month,day;
    int day_of_year(int year,int month,int day);
    printf("year,month,day:");
    scanf("%d%d%d",&year,&month,&day);
    
    printf("days of year:%d\n",day_of_year(year,month,day));   /* 要不直接放在printf里 */
    return 0;
}
int day_of_year(int year,int month,int day)
{
    int k,leap;
    int tab[2][13]={              /* 每行13个元素 */
    {0,31,28,31,30,31,30,31,31,30,31,30,31},
        {0,31,29,31,30,31,30,31,31,30,31,30,31}
    };
    leap=(year%4==0&&year%100!=0||year%400==0);
    for(k=1;k<month;k++)
        day=day+tab[leap][k];
    return day;
}

努力—前进—变老—退休—入土
2009-12-28 09:37
liangwenbc
Rank: 3Rank: 3
来 自:广州
等 级:论坛游侠
帖 子:168
专家分:174
注 册:2008-6-11
收藏
得分:0 
int tab[2][3]={
        {0,31,28,31,30,31,30,31,31,30,31,30,31},
        {0,31,29,31,30,31,30,31,31,30,31,30,31}
这里太夸张了吧

qq7434391
2009-12-28 10:15
dancing1wolv
Rank: 2
来 自:中国
等 级:论坛游民
帖 子:36
专家分:78
注 册:2009-12-25
收藏
得分:0 
//任意输一个日期,判断是当年的第几天
#include<stdio.h>
main()
{
    int day_of_year(int day,int month,int year);
    int day,month,year;
    printf("input year,month,day:\n");
    scanf("%d%d%d",&year,&month,&day);
    printf("%d年%d月%d日是当年的第%d天\n",year,month,day,
        day_of_year(day,month,year));
}
int day_of_year(int day,int month,int year)
{
    int k,leap,monthday[2][12]={
        {31,29,31,30,31,30,31,31,30,31,30,31},
        {31,28,31,30,31,30,31,31,30,31,30,31}};
    leap=(year%4==0 && year%100 || year%400==0);
    for(k=0;k<month-1;k++)
        day+=monthday[leap][k];
    return day;
}
思路属于抄袭你的,只是小修了一下,仅供草考,嘿嘿…

相信自己,每天进步一点点,C语言,you can do it 。
2009-12-28 13:46
pgy
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:C
等 级:小飞侠
威 望:8
帖 子:1248
专家分:2329
注 册:2009-9-23
收藏
得分:0 
回复 4楼 UserYuH
哇...活了

我可好玩啦...不信你玩玩^_^
2009-12-28 14:56
fqtb16
Rank: 7Rank: 7Rank: 7
来 自:上海
等 级:黑侠
帖 子:96
专家分:504
注 册:2009-12-28
收藏
得分:0 
瞧瞧

爱拼才会赢
2009-12-28 16:41
gao2951713
Rank: 2
等 级:论坛游民
帖 子:23
专家分:36
注 册:2009-12-28
收藏
得分:0 
for(k=0;k<month-1;k++)
        day+=monthday[leap][k];
问 一下!这枚看懂!for语句里为什么是k<month-1啊?还有这的day+=monthday[leap][k];这一句的前半段我还能看懂,后半段怎么解释啊!劳驾解释一下!
图片附件: 游客没有浏览图片的权限,请 登录注册
2009-12-28 18:28
fqtb16
Rank: 7Rank: 7Rank: 7
来 自:上海
等 级:黑侠
帖 子:96
专家分:504
注 册:2009-12-28
收藏
得分:0 
#include<stdio.h>

int main()
{
    int day_of_year(int day,int month,int year);
    int day,month,year;
    printf("input year,month,day:\n");
    scanf("%d%d%d",&year,&month,&day);
    printf("%d-%d-%d %d\n",year,month,day,day_of_year(day,month,year));
}

int day_of_year(int day,int month,int year)
{
    int k,leap,monthday[2][12]={
        {31,28,31,30,31,30,31,31,30,31,30,31},
        {31,29,31,30,31,30,31,31,30,31,30,31}
                                };
    leap=((year%4==0&&year%100!=0)||year%400==0);
    for(k=0;k<month-1;k++)
   
       day+=monthday[leap][k];
   
    return day;
}

    for(k=0;k<month-1;k++)
   
       day+=monthday[leap][k];
   
k对应12,因为是从K=0开始,即当k=0时已经为1月,k=11是为12月
leap=((year%4==0&&year%100!=0)||year%400==0);当leap==1时为闰年

爱拼才会赢
2009-12-28 19:22
快速回复:各位大侠,看我这个程序哪里错了?
数据加载中...
 
   



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

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