| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1670 人关注过本帖
标题:把某年某月某天转换为改年的第几天,可为什么我编译后总会有call of nonfun ...
取消只看楼主 加入收藏
大英
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2014-3-2
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:3 
把某年某月某天转换为改年的第几天,可为什么我编译后总会有call of nonfunction?是不是我函数调用错了
#include<stdio.h>
int year(int y)            (判断是否为闰年)
{if(y%4!=0||(y%4==0&&y%100!=0&&y%400!=0))
  return 0;
  else return 1;
}
int mouth(int m)
{ if(year(m)==0&&m==2)(判断每月天数)
   return 28;
    if(year(m)!=0&&m==2)
     return 29;
   if((m<=7&&m%2!=0)||(m>=8&&m%2==0))
    return 31;
     else
     return 30;
}

void main()
{   int year,mouth,day,day1,day2,m;m=0;day2=0;
   do
   {
     printf( " Input year");
     scanf("%d",&year);
   }while(year<1900||year>3000);
   do
   {
     printf("Input mouth");
     scanf("%d",&mouth);
   }while(mouth<1||mouth>12);
   day2=mouth(m);
   do
   { printf("Input day");
     scanf("%d",&day);
   }while(day<1||day>day2);
   if(mouth==1)
    day1=day;(如果月份为一,直接等于输入日期)

   else if(mouth>1)
   {
     do
      { day1=mouth(m)+day1;(从一月份开始加,直到等于输入月份)
    m++;
      }while(m>mouth-1);
      day1=day1+day;(再加上最大月份的日期)
   }
   printf("Is %d",day1);
}
(可是怎么会编译不过的)
搜索更多相关主题的帖子: include return 
2014-03-02 21:31
大英
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2014-3-2
收藏
得分:0 
回复 2楼 wp231957
include<stdio.h>
int score(int year)
{ if(year%4!=0||year%4==0&&year%100==0&&year%400!=0)
  return 28;
  else return 29;
}
int score1(int month)
{ if(month==2) return score(month);
    if(((month<=7)&&(month%2!=0))||((month>=8)&&(month%2==0)))
     return 31;
    else
     return 30;
}

int main()
{ int y,m,d,i,j,k; k=0;
  do
  { printf("Input year\n");
    scanf("%d",&y);
  }while(y<1900||y>3000);
  do
  { printf("Input month\n");
    scanf("%d",&m);
  }while(m<1||m>12);
  do
  { printf("Input days(0<day<%d)\n",score1(i));
    scanf("%d",&d);
  }while(d<1||d>score1(i));
  printf("%d %d %d\n",y,m,d);
   if(m==1)
    k=d;
   else
   {  i=1;
       do
       {
    k=k+score1(i);printf(" %d %d\n",i,k);(你看我改了一下,运行一下发现不行结果不对,然后一个一个去找,这两个输出都是检查错误的,发现他们其实可以运算正确结果,但是它们好像不存进去的??而且为什么那个k=k+d无法执行的??搞到最后结果都是过千的)
    i++;
    if(i==2&&i>2) {k=k+score(i);i++; printf(" %d %d\n",i,k);}
       }while(i<m);
      k=k+d;
   }

   printf("Is %d\n");    getch();
   return 0;
}
2014-03-02 23:02
大英
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2014-3-2
收藏
得分:0 
回复 4楼 w851777025
你这个我还是可以看懂的,也挺适合新手看的,可不可以帮我看一下,我自己改的这个哪错了???
include<stdio.h>
int score(int year)
{ if(year%4!=0||year%4==0&&year%100==0&&year%400!=0)
  return 28;
  else return 29;
}
int score1(int month)
{ if(month==2) return score(month);
    if(((month<=7)&&(month%2!=0))||((month>=8)&&(month%2==0)))
     return 31;
    else
     return 30;
}

int main()
{ int y,m,d,i,j,k; k=0;
  do
  { printf("Input year\n");
    scanf("%d",&y);
  }while(y<1900||y>3000);
  do
  { printf("Input month\n");
    scanf("%d",&m);
  }while(m<1||m>12);
  do
  { printf("Input days(0<day<%d)\n",score1(i));
    scanf("%d",&d);
  }while(d<1||d>score1(i));
  printf("%d %d %d\n",y,m,d);
   if(m==1)
    k=d;
   else
   {  i=1;
       do
       {
    k=k+score1(i);printf(" %d %d\n",i,k);(你看我改了一下,运行一下发现不行结果不对,然后一个一个去找,这两个输出都是检查错误的,发现他们其实可以运算正确结果,但是它们好像不存进去的??而且为什么那个k=k+d无法执行的??搞到最后结果都是过千的)
    i++;
    if(i==2&&i>2) {k=k+score(i);i++; printf(" %d %d\n",i,k);}
       }while(i<m);
      k=k+d;
   }

   printf("Is %d\n");    getch();
   return 0;
}
2014-03-02 23:04
大英
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2014-3-2
收藏
得分:0 
回复 7楼 w851777025
额,我不知道没值不可以传参的,好像还真有矛盾
2014-03-02 23:37
快速回复:把某年某月某天转换为改年的第几天,可为什么我编译后总会有call of n ...
数据加载中...
 
   



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

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