gpt4 book ai didi

c++ - 如何修复C++中的 “expected”错误

转载 作者:行者123 更新时间:2023-12-02 11:15:50 25 4
gpt4 key购买 nike

这是一个用于查找人的年龄的程序。C++在第33行向我显示“预期”错误。你能帮我解决这个问题吗?我不明白这是什么错误。

#include<iostream.h>
#include<conio.h>
struct date
{
int day;
int month;
int year;
};
date birth;
date current;

void main()
{
void calculate(int,int,int,int,int,int);
cout<<"\nEnter your date of birth";
cout<<"\nDay: ";
cin>>birth.day;
cout<<"\nMonth: ";
cin>>birth.month;
cout<<"\nYear: ";
cin>>birth.year;
cout<<"\nEnter current date";
cout<<"\nDay: ";
cin>>current.day;
cout<<"\nMonth: ";
cin>>current.month;
cout<<"\nYear: ";
cin>>current.year;
calculate (birth.day,birth.month,birth.year,current.day,current.month,current.year);
getch();
}

// Error on line below
void calculate(int birth.day,int birth.month,int birth.year,int current.day,int current.month,int current.year)
{
int monthdays[]={31,28,31,30,31,30,31,31,30,31,30,31};
if(birth.day>current.day)
{
current.day=current.day=monthdays[birth.month-1];
current.month=current.month-1;
}
else if(birth.month>current.month)
{
current.year=current.year-1;
current.month=current.month+12;
}
int calculated_date=current.date-birth.date;
int calculated_month=current.month-birth.month;
int calculated_year=current.year=birth.year;

cout<<"Present age= "<<calculated_date<<calculated_month<<calculated_year;
}

(33,27)中有错误

最佳答案

在C++中,不能将参数作为类的成员变量传递。在

void calculate(int birth.day, ...
birth.day无效。

但是,可以传递整个类,然后使用成员变量。

更改
void calculate(int,int,int,int,int,int);

进入
void calculate(date, date); 

接着
calculate       (birth.day,birth.month,birth.year,current.day,current.month,current.year);

进入
calculate(birth, current);

最后
void calculate(int birth.day,int birth.month,int birth.year,int   current.day,int current.month,int current.year)

进入
void calculate(date birth, date current)

有很多方法可以对此进行改进,以供引用
void calculate(const date & birth, date current) 

(请注意 current不是引用,因为它将在函数中进行修改),并清理 calculate中的一些错字
current.day=current.day=monthdays[birth.month-1]; 

应该是
current.day=current.day+monthdays[birth.month-1];

要么
current.day+=monthdays[birth.month-1];


int calculated_date=current.date-birth.date;

应该更像
int calculated_day=current.day-birth.day;

编译器将捕获第二个错字,但可能不会捕获第一个错字。我也没有出售 calculate中使用的逻辑,但是幸运的是,TurboC++是Turbo Debugger附带的,Turbo Debugger是当时最好的调试器之一,在我看来,它仍然保持着良好的状态。

关于c++ - 如何修复C++中的 “expected”错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53857169/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com