| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 742 人关注过本帖
标题:求助高手!!!编了个关于计算年龄的出错了!帮忙看一下,小弟这厢有礼了
只看楼主 加入收藏
小强。小强
Rank: 2
来 自:山西大同
等 级:论坛游民
帖 子:42
专家分:56
注 册:2012-11-15
结帖率:100%
收藏
已结贴  问题点数:5 回复次数:9 
求助高手!!!编了个关于计算年龄的出错了!帮忙看一下,小弟这厢有礼了
程序是;
#include<stdio.h>
#include<math.h>
int getBirthdayDate(int* Bmonth,int* Bday,int* Byear);
int getNowDate(int* Nmonth,int* Nday,int* Nyear);
int calculate(int* month,int* day,int* year);
void printInformation();
int main()
{
    int Bmonth,Bday,Byear;
    int Nmonth,Nday,Nyear;
    int month,day,year;

    getBirthdayDate(&Bmonth,&Bday,&Byear);
    getNowDate(&Nmonth,&Nday,&Nyear);
    calculate(&month,&day,&year);
    printInformation();
    return(0);
}
int getBirthdayDate(int* Bmonth,int* Bday,int* Byear)
{
    printf("enter the month;\n");
    scanf("%d",Bmonth);
    printf("enter the day;\n");
    scanf("%d", Bday);
    printf("enter the year;\n");
    scanf("%d", Byear);
    return;
}


int getNowDate(int* Nmonth,int* Nday,int* Nyear);
{
   printf("enter the month;\n");
    scanf("%d",Nmonth);
    printf("enter the day;\n");
    scanf("%d", Nday);
    printf("enter the year;\n");
    scanf("%d", Nyear);
    return;
}

int calculate(int* month,int* day,int* year);
{
   int Bmonth,Bday,Byear;
   int Nmonth,Nday,Nyear;
   if(Nday>=Bday)
       *day=Nday-Bday;
   else
   {
       day=(Nday+30)-Bday;
       Nmonth=Nmonth-1;
   }
   if(Nmonth>=Bmonth)
       *month=Nmonth-Bmonth;
   else
   {
       *month=(Nmonth+12)-Bmonth;
       Nyear=Nyear-1;
   }
   if(Nyear>=Byear)
       *year=Nyear-Byear;
   else
        printf("it's error!");
}

void printInformation()
{
    int Bmonth,Bday,Byear;
    int Nmonth,Nday,Nyear;
    int month,day,year;
    printf("this people Birthday is; %d-&d-%d!",Bmonth,Bday,Byear);
    printf("today is;%d-%d-%d!",Nmonth,Nday,Nyear);
    printf("his age is;%dold%dmonth%dday;",year,month,day);
    return;

}
错误提示是;

计算年龄.cpp
C:\Documents and Settings\Administrator\桌面\计算年龄.cpp(27) : error C2561: 'getBirthdayDate' : function must return a value
        C:\Documents and Settings\Administrator\桌面\计算年龄.cpp(3) : see declaration of 'getBirthdayDate'
C:\Documents and Settings\Administrator\桌面\计算年龄.cpp(32) : error C2447: missing function header (old-style formal list?)
C:\Documents and Settings\Administrator\桌面\计算年龄.cpp(43) : error C2447: missing function header (old-style formal list?)
执行 cl.exe 时出错.

计算年龄.exe - 1 error(s), 0 warning(s)

搜索更多相关主题的帖子: 计算 void include 
2012-11-15 20:43
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
如果你都不愿意自己翻翻字典查查错误提示中的那几个单词是什么意思,那你还是别学编程了,这是在浪费时间。

重剑无锋,大巧不工
2012-11-15 21:18
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
以下是引用beyondyf在2012-11-15 21:18:58的发言:

如果你都不愿意自己翻翻字典查查错误提示中的那几个单词是什么意思,那你还是别学编程了,这是在浪费时间。
+65535
2012-11-15 21:30
小强。小强
Rank: 2
来 自:山西大同
等 级:论坛游民
帖 子:42
专家分:56
注 册:2012-11-15
收藏
得分:0 
回复 2楼 beyondyf
我查了,就是不知道怎回事
'getBirthdayDate' : function must return a value
“getBirthdayDate”:函数必须返回一个值
see declaration of 'getBirthdayDate'
看到“getBirthdayDate”宣言
missing function header (old-style formal list?)
失踪的函数header(旧式的正式名单吗?)
2012-11-15 21:33
小强。小强
Rank: 2
来 自:山西大同
等 级:论坛游民
帖 子:42
专家分:56
注 册:2012-11-15
收藏
得分:0 
回复 3楼 zklhp
我查了,就是不知道怎回事
'getBirthdayDate' : function must return a value
“getBirthdayDate”:函数必须返回一个值
see declaration of 'getBirthdayDate'
看到“getBirthdayDate”宣言
missing function header (old-style formal list?)
失踪的函数header(旧式的正式名单吗?)
2012-11-15 21:35
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
连“函数必须返回一个值”这话什么意思都不懂?呵呵,算了。你的分别给我,我不想要。

重剑无锋,大巧不工
2012-11-15 21:41
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:5 
以下是引用小强。小强在2012-11-15 21:35:20的发言:

我查了,就是不知道怎回事
'getBirthdayDate' : function must return a value
“getBirthdayDate”:函数必须返回一个值
see declaration of 'getBirthdayDate'
看到“getBirthdayDate”宣言
missing function header (old-style formal list?)
失踪的函数header(旧式的正式名单吗?)

最简单的改法 对于有返回值的函数 最后写return 0; 就对了

看来你对函数返回值还不了解啊 多看书罢
2012-11-15 21:44
yudeyinji198
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:139
专家分:133
注 册:2012-8-30
收藏
得分:0 
从简单的学起吧!看<->练!
2012-11-15 21:48
yaobao
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:4
帖 子:1854
专家分:4121
注 册:2012-10-25
收藏
得分:0 
楼主的代码我没怎么看,但是从报错的信息上看问题好像是出在int getBirthdayDate(int* Bmonth,int* Bday,int* Byear)
处,楼主定义的是一个返回值是int型的函数,那么在函数后就应该有return返回一个整型的数。



另外请教一下两位版主大神像楼主这样getBirthdayDate(&Bmonth,&Bday,&Byear);
    getNowDate(&Nmonth,&Nday,&Nyear);
    calculate(&month,&day,&year);
把变量的地址作为实参传递可以吗?我在编译器上试了好久,都没成功,是这样做不允许还是我没弄好?
请大神解惑

认认真真的学习,踏踏实实的走路:戒骄戒躁!!!
2012-11-15 22:04
yaobao
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:4
帖 子:1854
专家分:4121
注 册:2012-10-25
收藏
得分:0 
呵呵,原来这样真的可以。
#include<stdio.h>
#include<math.h>
int getBirthdayDate(int* Bmonth,int* Bday,int* Byear);
int getNowDate(int* Nmonth,int* Nday,int* Nyear);
int calculate(int* month,int* day,int* year);
void printInformation();
    int Bmonth,Bday,Byear;
    int Nmonth,Nday,Nyear;
    int month,day,year;
int main()
{


    getBirthdayDate(&Bmonth,&Bday,&Byear);
    getNowDate(&Nmonth,&Nday,&Nyear);
    calculate(&month,&day,&year);
    printInformation();
    return 0;
}
int getBirthdayDate(int* Bmonth,int* Bday,int* Byear)
{
    printf("enter the month;\n");
    scanf("%d",Bmonth);
    printf("enter the day;\n");
    scanf("%d", Bday);
    printf("enter the year;\n");
    scanf("%d", Byear);
    return 0;
}


int getNowDate(int* Nmonth,int* Nday,int* Nyear)
{
   printf("enter the month;\n");
    scanf("%d",Nmonth);
    printf("enter the day;\n");
    scanf("%d", Nday);
    printf("enter the year;\n");
    scanf("%d", Nyear);
    return 0;
}

int calculate(int* month,int* day,int* year)
{

   if(Nday>=Bday)
       *day=Nday-Bday;
   else
   {
       day=(Nday+30)-Bday;
       Nmonth=Nmonth-1;
   }
   if(Nmonth>=Bmonth)
       *month=Nmonth-Bmonth;
   else
   {
       *month=(Nmonth+12)-Bmonth;
       Nyear=Nyear-1;
   }
   if(Nyear>=Byear)
       *year=Nyear-Byear;
   else
        printf("it's error!");return 0;
}

void printInformation()
{
    printf("this people Birthday is; %d-%d-%d!\n",Bmonth,Bday,Byear);
    printf("today is;%d-%d-%d!\n",Nmonth,Nday,Nyear);
    printf("his age is;%dold%dmonth%dday;\n",year,month,day);
    return 0;

}
哈哈,原来地址也可以当做实参的,学习了。。
本人新手,说错勿怪,欢迎指正。。

认认真真的学习,踏踏实实的走路:戒骄戒躁!!!
2012-11-15 22:24
快速回复:求助高手!!!编了个关于计算年龄的出错了!帮忙看一下,小弟这厢有礼 ...
数据加载中...
 
   



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

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