| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1779 人关注过本帖
标题:C语言书上提供的代码,但一直编译不过,大家帮忙看一下怎么回事
只看楼主 加入收藏
yinzhaoyu
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2016-11-14
收藏
 问题点数:0 回复次数:8 
C语言书上提供的代码,但一直编译不过,大家帮忙看一下怎么回事
# include <stdio.h>
# include <string.h>
# include <stdlib.h>
main(int x,char **date)
{                  
    int year =0,day=0,month=0,week;                //定义整形变量
    int d,i,dm,dy,m2;
    char WEEK[9];

    if(x==1)                                //判断命令行的传参个数
    {
    printf("\n ERROR ! you forget to enter the date you want to view \n");    /*没有传参时,输出此提示语句*/
        exit(0);                                                              /* 退出项目程序*/
    }

    i=0;
    d=-1;

    while(date[1][i])                        /*遍历传参,进行格式转换*/
    {
        if((date[1][i]=='/'||date[1][i]=='.')&&d==-1)
            {
             d=0;
             i++;
             continue;
            }
        if((date[1][i]=='/'||date[1][i]=='.')&&d==0)
            {
             d=1;
             i++;
             continue;
            }
        if(d==-1)
            {
             year=year*10+(date[1][i]-'0');
            }
        if(d==0)
            {
             month=month*10+(date[1][i]-'0');
            }
        if(d==1)
            {
             day=day*10+(date[1][i]-'0');
            }
        i++;
    }

    if(year==2000)
    {
        dy=0;
        m2=1;
        goto la_100;
    }

    /*当输入的年份大于2000或小于2000时,分别根据相应的公式计算出该年到2000年之间闰年所引起的星期差,
           然后计算该年1月1日到2000年1月1日的星期差。
            相关代码如下*/
            

        if(year>2000)
            d=(year-1-2000)/4-(year-1-2000)/100+(year-1-2000)/400+1;
        else
            d=(year-2000)/4-(year-2000)/100+(year-2000)/400;
        dy=(year-2000)+d;
        /*该年1月1日到2000年1月1日的星期差*/
            
        /*以上为月引起的星期差和年引起的星期差,还有一个2月份所引起的星期差。
          2月份所引起的星期差,需要先判断该年是否为闰年。
          若是闰年,则二月份所引起的星期差为1;
          若不是闰年,则二月份所引起的星期差为0.
           实现代码如下:*/

        if((year%4==0 && year%100!=0)||(year%100==0 && year%400==0))
            m2=1;
        else
            m2=0;





    la_100:                                /* **该月以前的月所引起的“星期差”** */
        switch(month)
        {
        case 1:dm=0;                    /* month在此存放该月天数 */
               month=31;
               break;
        case 2:dm=3;
               month=d==1?29:28;
               break;
        case 3:dm=3+m2;
               month=31;
               break;
        case 4:dm=6+m2;
               month=30;
               break;
        case 5:dm=1+m2;
               month=31;
               break;
        case 6:dm=4+m2;
               month=30;
               break;
        case 7:dm=6+m2;
               month=31;
               break;
        case 8:dm=2+m2;
               month=31;
               break;
        case 9:dm=5+m2;
               month=30;
               break;
        case 10:dm=m2;
                month=31;
                break;
        case 11:dm=3+m2;
                month=30;
                break;
        case 12:dm=5+m2;
                month=31;
                break;
        }


        if (day<0||day>month)
        {
            printf ("\n ERROR! the entered DAY is invalid\n");
            exit (0);
        }
        
        /*在是吸纳计算星期几模块的过程中首先需要对判定这个日期时星期几而进行公式计算,
          即使该日期所对应的这个月的天数加上这个月之前的月引起的星期差和该年1月1日到2000年1月1日所引起的星期差减1再加6对7取余。
          相应代码如下*/


        week=(dy+dm+day-1+6)%7;
        if(week<0)
            week=week+7;

        /*然后对计算出来的week值进行类型判断,若为0,则将“SUNDAY”复制给WEEK参数
          相关代码如下*/

        if(day>0)            /*判定查看类型*/
        {
        switch(week)
            {
            case 0:strcpy(WEEK,"SUNDAY");
                   break;
            case 1:strcpy(WEEK,"MONDAY");
                   break;
            case 2:strcpy(WEEK,"TUESDAY");
                   break;
            case 3:strcpy(WEEK,"WEDNESDAY");
                   break;
            case 4:strcpy(WEEK,"THURSDAY");
                   break;
            case 5:strcpy(WEEK,"FRIDAY");
                   break;
            case 6:strcpy(WEEK,"SATURDAY");
                   break;
            }
            printf("\n this day is %s \(%d)\n\n OK!\n",WEEK,week);      /*输出提示信息*/
            
        }

        /*当传入的参数只输入到月份,未输入具体日期时,对该月所在的日历进行显示
            实现代码如下*/

        else
        {
        week=++week%7;
        printf("\n the calendar of this month sa following\n");
        printf("\n*****************************************\n");
        printf("SUN  MON  TUE  WEN  THU  FRI  STA\n");
        for(i=0;i<week;i++)
            printf("     ");
        for(i=1;i<=month;i++)                    /*输出该月的所有天数*/
            {
                printf(" %2d  ",i);   
                week++;
                if(week%7==0 && i!=month)
                    printf("\n");
            }
        printf("\n*****************************************\n");
        printf("\n OK \n");
        }
            


我用的微软C++  编译一直显示有一个error,但却又不显示在哪,,,,我用DEV-C++却能编译通过,这是什么问题??、

我电脑系统是win10 的,是不是微软C++不能在win10上运行???
        

}
搜索更多相关主题的帖子: include C语言 项目 
2016-12-01 17:20
yinzhaoyu
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2016-11-14
收藏
得分:0 
大家帮忙解答一下,谢谢各位哥哥姐姐了
2016-12-01 17:20
yinzhaoyu
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2016-11-14
收藏
得分:0 
尴尬呢..............没人........
2016-12-01 21:41
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9026
专家分:54030
注 册:2011-1-18
收藏
得分:0 
以下是引用yinzhaoyu在2016-12-1 21:41:31的发言:

尴尬呢..............没人........
有没有想过是自己的问题?!

小明写了本小说寄给老师,但字写得特别潦草,老师看得头昏眼花,就将小说废物利用擦屁股了。
小明久久等不到回信:“唉,看来老师不在家呀”

小明写了本小说寄给杂志社,杂志社要他将第一千零一页第999行的错别字更正过来,小明不知道正确的字该怎么写,于是将小说寄给老师,请老师帮他改错。但却不告诉老师要改哪页哪行的错别字,于是老师只好从头至尾一个字一个字的读,读到第一千页时已经累得进了医院。
小明久久等不到回信:“唉,看来老师又不在家呀”
2016-12-02 12:37
wanglianyi1
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:14
帖 子:647
专家分:2067
注 册:2015-6-18
收藏
得分:0 
你要把代码的格式,缩进这些搞搞好,然后把你编译错误提醒复制放上来,这样别人才方便帮你分析错误。
代码的格式有标准化的,从开始就要注意,这样为你以后自己的编程绝对有好处,不光日后的调试还是维护,标准化作业!

[此贴子已经被作者于2016-12-2 14:21编辑过]

2016-12-02 14:20
a120750
Rank: 4
等 级:业余侠客
威 望:1
帖 子:63
专家分:243
注 册:2016-3-13
收藏
得分:0 
这么长代码。并且排版又不好。看你代码的欲望都没啦。。
2016-12-02 14:22
yinzhaoyu
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2016-11-14
收藏
得分:0 
回复 4楼 rjsp
恩恩,好的,谢谢指导,谢谢指导。

我以后会注意这些的,谢谢指导。
2016-12-02 17:18
yinzhaoyu
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2016-11-14
收藏
得分:0 
回复 5楼 wanglianyi1
恩恩,好的呢。   
我今天发现问题了,VC++6.0 在win10兼容性不好。我用Devc++弄好了。
你说的问题我以后
2016-12-02 17:22
yinzhaoyu
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2016-11-14
收藏
得分:0 
回复 4楼 rjsp
谢谢各位的批评,我一定会改正的,谢谢各位了
2016-12-02 17:22
快速回复:C语言书上提供的代码,但一直编译不过,大家帮忙看一下怎么回事
数据加载中...
 
   



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

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