| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 862 人关注过本帖
标题:大一CS新生 做到一题函数和数组的题 出了问题 但是一直找不到问题在哪 求好 ...
只看楼主 加入收藏
Poppy辉
Rank: 1
来 自:云南曲靖
等 级:新手上路
帖 子:33
专家分:4
注 册:2016-11-5
结帖率:66.67%
收藏
已结贴  问题点数:10 回复次数:2 
大一CS新生 做到一题函数和数组的题 出了问题 但是一直找不到问题在哪 求好心人指点
#include<stdio.h>
#define months 12
#include<assert.h>
void ReadDate(int x, int y, int z);
void CacuDate(int a, int b, int c, int days1[], int days2[], int x,  int y, int z);
main()
{
    int a, b, c, w;
    int x, y, z;   
    int days1[months] = {31,28,31,30,31,30,31,31,30,31,30,31};
    int days2[months] = {31,29,31,30,31,30,31,31,30,31,30,31};
    a = 2016;
    b = 11;
    c = 12;
    w = 6;
        printf("%d年%d月%d日是星期%d\n", a, b, c, w);
        ReadDate(x, y, z);
        CacuDate(a, b, c, days1, days2, x, y, z);
}
    void ReadDate(int x, int y, int z)
    {
        printf("Input year:x month:y day:z :\n");
        scanf("%d%d%d", &x, &y, &z);
        assert( y>=1 && y<=12 && z>=1 && z<= 31 );
    }


    void CacuDate(int a, int b, int c, int days1[], int days2[], int x, int y, int z)
    {   
        int i, j, n, sum1, sum2, sum3, sum;
        sum1 = c;
        sum = 0;
        sum3 = 0;
        n = z;

        if( x<a )
        {
            for( i=0; i<b-1; i++)
            {
                sum1 += days1[i];
            }

            if( x%4==0 && x%100==0 || x%400==0 )
            {
                for ( i=0; i<y-1; i++ )
                {
                    n += days2[i];
                }
                sum2 = 366-n;
            }
            else
            {
                for( i=0; i<y-1; i++)
                {
                    n += days1[i];
                }
                sum2 = 365-n;
            }


            for ( j=x; j<a-1; j++ )
            {
                if((j+1)%4==0 && (j+1)%100==0 || (j+1)%400==0 )
                {
                    sum3 += 366;
                }
                else
                {
                    sum3 += 365;
                }
            }
               
        }
        sum = sum1+sum2+sum3;
        printf("%d\n",sum);
   
    }
图片附件: 游客没有浏览图片的权限,请 登录注册

问题应该是处在函数CacuDate中了 麻烦好心人看一下.
搜索更多相关主题的帖子: months include 
2016-11-13 20:18
xufan
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:6
帖 子:232
专家分:804
注 册:2008-10-20
收藏
得分:10 
简单看了下,main函数中的x,y,z没有进行初使化,经过ReadDate函数之后,x,y,z的值也没有变化,仍然是随机值。

~~~~~~我的明天我知道~~~。
2016-11-13 20:41
Poppy辉
Rank: 1
来 自:云南曲靖
等 级:新手上路
帖 子:33
专家分:4
注 册:2016-11-5
收藏
得分:0 
回复 2楼 xufan
谢谢啦 问题已经解决啦~
2016-11-13 23:17
快速回复:大一CS新生 做到一题函数和数组的题 出了问题 但是一直找不到问题在哪 ...
数据加载中...
 
   



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

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