C++ 为什么我的程序总是有未解决的外部问题?
当我尝试在VisualStudio中运行此代码时,会不断收到未解析的外部代码 为大学安排时间分配 创建一个名为Time的结构,该结构包含成员天、小时、分钟, 秒作为整数。 创建时间实例并初始化成员。 创建一个函数以规范化向其添加值的时间 例如,将值添加到小时后,调用normalize 函数,该函数应查看小时数是否大于24小时。 如果是,则在days成员中添加1,并通过减去24重置小时数 从当前值。 在59分钟和59秒的时间内也这样做 你的主程序应该为小时、分、秒和秒添加值 每次之后,调用normalize函数以正确设置值 每次更新后输出成员。假设小时使用24小时制 时钟C++ 为什么我的程序总是有未解决的外部问题?,c++,visual-c++,C++,Visual C++,当我尝试在VisualStudio中运行此代码时,会不断收到未解析的外部代码 为大学安排时间分配 创建一个名为Time的结构,该结构包含成员天、小时、分钟, 秒作为整数。 创建时间实例并初始化成员。 创建一个函数以规范化向其添加值的时间 例如,将值添加到小时后,调用normalize 函数,该函数应查看小时数是否大于24小时。 如果是,则在days成员中添加1,并通过减去24重置小时数 从当前值。 在59分钟和59秒的时间内也这样做 你的主程序应该为小时、分、秒和秒添加值 每次之后,调用norm
#包括
使用名称空间std;
结构时间
{
整数天=0;
整小时=0;
整数分钟=0;
整数秒=0;
};
void normalize();
int main()
{
int时钟重复;
用于(clockRepeating=0;clockRepeating<150;clockRepeating++)
{
规范化();
}
返回0;
}
无效规格化(时间和时间规格化)
{
如果(timenormalize.days>31)
timenormalize.days=1;
如果(时间正常化小时数>24)
{
timenormalize.hours=0;
时间标准化。天++;
}
如果(timenormalize.minutes>59)
{
timenormalize.minutes=0;
时间标准化.hours++;
}
如果(时间正常化。秒>59)
{
timenormalize.seconds=0;
时间标准化。分钟++;
cout您为void normalize();
声明的签名与此文件中定义的签名不匹配(void normalize(Time&timenormalize)
)。以下是您的代码的固定版本。首先是编译错误:
- 将
Struct
更改为Struct
:Struct
是关键字,必须小写
- 将
Time
更改为struct Time
中的void normalize(..)
:符号区分大小写:Time
未声明,但struct Time
是
- 将缺少的
添加到if(timenormalizehours)
:if(timenormalize.hours)
- 在文件末尾添加了
}
(可能是复制/粘贴错误)
然后链接器错误未定义对“normalize”的引用:
- 将函数声明
void normalize()
更改为void normalize(struct time&)
:声明normalize
函数时不带参数,但使用一个参数定义它
最后,这将导致编译错误:
- 将
normalize();
调用更改为normalize(mytime);
,因为它需要一个参数
- 并声明一个局部变量
struct mytime
作为参数传递
#包括
使用名称空间std;
结构时间
{
整数天=0;
整小时=0;
整数分钟=0;
整数秒=0;
};
void规范化(结构时间&);
int main()
{
int时钟重复;
结构时间mytime;
用于(clockRepeating=0;clockRepeating<150;clockRepeating++)
{
正常化(mytime);
}
返回0;
}
无效规格化(结构时间和时间规格化)
{
如果(timenormalize.days>31)
timenormalize.days=1;
如果(timenormalize.hours>24)
{
timenormalize.hours=0;
时间标准化。天++;
}
如果(timenormalize.minutes>59)
{
timenormalize.minutes=0;
时间标准化.hours++;
}
如果(时间规格化.seconds>59)
{
timenormalize.seconds=0;
时间标准化。分钟++;
您得到的确切错误消息是什么?
#include <iostream>
using namespace std;
Struct time
{
int days = 0;
int hours = 0;
int minutes = 0;
int seconds = 0;
};
void normalize();
int main()
{
int clockRepeating;
for (clockRepeating = 0; clockRepeating < 150; clockRepeating++)
{
normalize();
}
return 0;
}
void normalize(Time &timenormalize)
{
if (timenormalize.days > 31)
timenormalize.days = 1;
if (timenormalizehours > 24)
{
timenormalize.hours = 0;
timenormalize.days++;
}
if (timenormalize.minutes > 59)
{
timenormalize.minutes = 0;
timenormalize.hours++;
}
if (time normalize.seconds > 59)
{
timenormalize.seconds = 0;
timenormalize.minutes++;
cout << timenormalize.days, timenormalize.hours, timenormalize.minutes, timenormalize.seconds;
}
else
timenormalize.seconds++;
cout << timenormalize.days, timenormalize.hours, timenormalize.minutes,timenormalize.seconds;
#include <iostream>
using namespace std;
struct time
{
int days = 0;
int hours = 0;
int minutes = 0;
int seconds = 0;
};
void normalize(struct time &);
int main()
{
int clockRepeating;
struct time mytime;
for (clockRepeating = 0; clockRepeating < 150; clockRepeating++)
{
normalize( mytime );
}
return 0;
}
void normalize(struct time &timenormalize)
{
if (timenormalize.days > 31)
timenormalize.days = 1;
if (timenormalize.hours > 24)
{
timenormalize.hours = 0;
timenormalize.days++;
}
if (timenormalize.minutes > 59)
{
timenormalize.minutes = 0;
timenormalize.hours++;
}
if (timenormalize.seconds > 59)
{
timenormalize.seconds = 0;
timenormalize.minutes++;
cout << timenormalize.days, timenormalize.hours, timenormalize.minutes, timenormalize.seconds;
}
else
timenormalize.seconds++;
cout << timenormalize.days, timenormalize.hours, timenormalize.minutes,timenormalize.seconds;
}