aladiu 发表于 2010-11-30 16:30:39

进来看一下,gcc编译,运行后,输出不是我想要的数据

#include<stdio.h>

/*********************************************/
/* 计算2000~2099年任一天星期几            */
/* year    : 00-99                           */
/* month: 01-12                              */
/* day   : 01-31                           */
/*********************************************/
unsigned char GetWeekFromDay(unsigned char year,unsigned char month,unsigned char day)
{
    if( month == 1 || month == 2 )   
    {
      month += 12;
      if( year> 0 )
            year--;
      else
            year = 4;
    }

    // 返回星期几(星期一用1表示,而星期天用7表示)
    return 1+(( day + 2*month + 3*(month+1)/5 + year + year/4 ) %7);
}

int main(void)
{
         printf("Input Year month day :);

        unsigned char num_week,num_year,num_month,num_day;
       
        scanf("%d%d%d",&num_year,&num_month,&num_day);
        num_week = GetWeekFromDay(num_year,num_month,num_day);
        printf("%d\n",&num_week);
        return 0;
}
在Linux下gcc编译输出的不是我要的答案啊,
声明计算星期的函数没有问题的。。
难道是gcc 不支持unsigned char,,
我输出的结果是
http://cache.amobbs.com/bbs_upload782111/files_35/ourdev_601381LGTH3P.jpg
(原文件名:week.jpg)
最后一个数字应该是0~6才对的啊,表示星期日到星期六
望高手,解释下,

usingavr 发表于 2010-11-30 16:44:41

你打印的是num_week的地址

snoopyzz 发表于 2010-11-30 16:53:06

printf("%d\n",num_week);

aladiu 发表于 2010-12-1 15:02:07

我X,晕倒。。。
页: [1]
查看完整版本: 进来看一下,gcc编译,运行后,输出不是我想要的数据