鱼C论坛

 找回密码
 立即注册
查看: 3018|回复: 3

求程序错误

[复制链接]
发表于 2011-4-2 15:04:52 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
//计算某年某月某日到某年某月某日之间的天数
#include <stdio.h>
int numberofday1  (struct date now)//如果month <= 2 计算n1的天数的公式
{
    int n1;
        n1 = ((1461 * (now.year - 1)) / 4 + (153 * (now.month + 13))) + now.day;
        return n1;
};
int numberofday2  (struct date now)//如果month >=2 && month <= 12 计算n2的天数的公式
{
    int n2;
        n2 = ((1461 * now.year) / 4 + (153 * (now.month + 1))) + now.day;
        return n2;
};

int main (void)
{   
   
    struct date //时间变量的声明
    {
        int year;
            int month;
            int day;
    };
    struct date now;
        int date1, date2, numberofdate;
   
        printf("inter your date1:\n");//输入你想要的日期
        scanf ("%2i %i %i", &now.year, &now.month, &now.day);
       
        if (now.month <= 2)//判断月份
            date1 = numberofday1 (now.year, now.month, now.day);
        else if (now.month >2 && now.month <= 12)
            date1 = numberofday2 (now.year, now.month, now.day);
        else
            printf ("the errer date!");
       
        printf("inter your date2:\n");//输入你想要的日期
        scanf ("%2i %i %i", &now.year, &now.month, &now.day);
       
        if (now.month <= 2)//判断月份
            date2 = numberofday1 (now.year, now.month, now.day);
        else if (now.month >2 && now.month <= 12)
            date2 = numberofday2 (now.year, now.month, now.day);
        else
            printf ("the errer date!");
       
        numberofdate = date1 - date2;//计算两个日期的天数
        printf("the number of day is %2i", numberofdate);       
       
        return 0;
}
无法编译错误,头都想破了。求解。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-4-3 00:10:28 | 显示全部楼层
大致的帮你把语法错误改好了~

主要两个问题:
第一,您的结构定义在main里边,而两个函数又定义在main上边,所以编译两个函数的时候编译器并不知道结构的存在,已做修改;
第二,实参和形参不一致,已修改。

嘻嘻,朋友有空也多帮大家回答问题互动哦~努力共建一个和谐、互助的学习型社区!
#include <stdio.h>


struct date //时间变量的声明
{
      int year;
      int month;
      int day;
};

int numberofday1  (struct date now);//如果month <= 2 计算n1的天数的公式
int numberofday2  (struct date now);//如果month >=2 && month <= 12 计算n2的天数的公式

int main (void)
{     
      struct date now;
      int date1, date2, numberofdate;
      
      printf("inter your date1:\n");//输入你想要的日期
      scanf ("%2i %i %i", &now.year, &now.month, &now.day);
      
      if (now.month <= 2)//判断月份
            date1 = numberofday1 (now);
      else if (now.month >2 && now.month <= 12)
            date1 = numberofday2 (now);
      else
            printf ("the errer date!");
      
      printf("inter your date2:\n");//输入你想要的日期
      scanf ("%2i %i %i", &now.year, &now.month, &now.day);
      
      if (now.month <= 2)//判断月份
            date2 = numberofday1 (now);
      else if (now.month >2 && now.month <= 12)
            date2 = numberofday2 (now);
      else 
            printf ("the errer date!");
      
      numberofdate = date1 - date2;//计算两个日期的天数
      printf("the number of day is %2i", numberofdate);        
      
      return 0;
}

int numberofday1  (struct date now)//如果month <= 2 计算n1的天数的公式
{
      int n1; 
      n1 = ((1461 * (now.year - 1)) / 4 + (153 * (now.month + 13))) + now.day;
      return n1;
}

int numberofday2  (struct date now)//如果month >=2 && month <= 12 计算n2的天数的公式
{
      int n2;
      n2 = ((1461 * now.year) / 4 + (153 * (now.month + 1))) + now.day;
      return n2;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-4-6 10:44:00 | 显示全部楼层
谢谢小甲鱼。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2015-12-11 11:59:49 | 显示全部楼层
:smile:smile:smile
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-26 15:35

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表