C++ C+中的数组存在问题+;
我在编写代码方面遇到了麻烦,但我想我已经掌握了大部分。我就是不能把分秒记下来。有人能帮忙吗C++ C+中的数组存在问题+;,c++,C++,我在编写代码方面遇到了麻烦,但我想我已经掌握了大部分。我就是不能把分秒记下来。有人能帮忙吗 编写C++代码,执行以下操作:< /P> •显示包含您姓名的欢迎信息 •提示并读取相册中12首曲目的长度(以分钟和秒为单位) •在阵列中以秒为单位存储每条轨迹的长度。 (注意:总秒数可通过分钟数乘以60并加上秒数来计算。) •计算并显示以下内容: –专辑中最短的曲目及其长度–专辑中最长的曲目及其长度 –整个专辑的总运行时间 –专辑中曲目的平均长度 •在输出中,所有时间都应采用标准的分和秒格式,中间应有冒号
编写C++代码,执行以下操作:< /P> •显示包含您姓名的欢迎信息
•提示并读取相册中12首曲目的长度(以分钟和秒为单位) •在阵列中以秒为单位存储每条轨迹的长度。 (注意:总秒数可通过分钟数乘以60并加上秒数来计算。) •计算并显示以下内容: –专辑中最短的曲目及其长度–专辑中最长的曲目及其长度 –整个专辑的总运行时间 –专辑中曲目的平均长度 •在输出中,所有时间都应采用标准的分和秒格式,中间应有冒号。这应通过具有以下原型的void函数完成: 无效显示时间(整数秒) 可以使用/和%运算符计算分钟数。请注意,如果秒数小于10,此函数必须在冒号后显示额外的零。例如,总长度为185秒的轨迹的长度应显示为3:05 应该是这样的 轨道1:3 25 轨道2:4 56 一直到12点 这就是我目前所拥有的#include <iostream>
#include <iomanip>
using namespace std;
void displayTime(int totalSeconds);
int main()
{
const int SIZE = 12;
float Tracks[SIZE];
int cnt = 0;
int TrackHigh;
int TrackLow;
int totalSeconds;
cout << "Welcome to Jalen Keller's Album Length Calculator." << endl;
cout << "Please enter all track lengths in minutes and seconds separated by a space." << endl;
while (Tracks[cnt] != -1 && cnt < SIZE)
{
cout << "Track " << cnt + 1 << ": ";
cin >> Tracks[cnt];
cnt++;
}
TrackHigh = Tracks[0];
for (cnt = 0; cnt < SIZE; cnt++) {
if (Tracks[cnt] > TrackHigh)
{
TrackHigh = Tracks[cnt];
}
}
TrackLow = Tracks[0];
for (cnt = 0; cnt < SIZE; cnt++)
if (Tracks[cnt] < TrackHigh)
{
TrackHigh = Tracks[cnt];
}
double total = 0;
double average;
for (int cnt = 0; cnt < SIZE; cnt++)
{
total += Tracks[cnt];
average = (total / SIZE);
}
cout << "The shortest track is: " << TrackHigh << endl;
cout << "The longest track is: " << TrackLow << endl;
cout << "The average length of a track is: " << average << endl;
system("pause");
return 0;
}
#包括
#包括
使用名称空间std;
无效显示时间(整数秒);
int main()
{
常数int SIZE=12;
浮动轨道[尺寸];
int-cnt=0;
int轨高;
int TrackLow;
整数秒;
你的任务描述实际上告诉你应该如何做
分钟和秒格式,中间带冒号
可以使用/和%运算符计算分钟数
请注意,如果秒数小于10,此函数必须在冒号后显示额外的零
我不太清楚为什么Tracks[cnt]
应该不同于-1,因为它当时还没有初始化。我认为cntfor(cnt=0;cnt这是经典的复制粘贴错误
if (Tracks[cnt] < TrackHigh)
{
TrackHigh = Tracks[cnt];
}
该数组在声明中未初始化,因此第一个循环中的条件Tracks[cnt]!=-1
是未定义的行为。如果-1
是停止填充相册的用户信号,则必须禁用该循环
for (cnt = 0; cnt < SIZE; ++cnt)
{
cout << "Track " << cnt + 1 << ": ";
cin >> Tracks[cnt];
if (Tracks[cnt] == -1)
{
AlbumSize = cnt + 1;
break;
}
}
for(cnt=0;cnt cout“我就是不能把分和秒都记下来。”你能展示一下你的尝试吗?你提供的代码似乎没有调用diplayTime(),也没有展示实现该函数的尝试。你剩下的代码看起来还行(或多或少),但基本上你是在问是否有人能为你完成最后一部分。因此,你的问题可能会被认为是离题。我尝试过,只是在它们不起作用时不断删除它们。我只需要朝着正确的方向推动。我理解,但你至少应该包括最接近你的实现。
if (Tracks[cnt] < TrackHigh)
{
TrackHigh = Tracks[cnt];
}
if (Tracks[cnt] < TrackHigh)
{
TrackLow = Tracks[cnt];
}
for (cnt = 0; cnt < SIZE; ++cnt)
{
cout << "Track " << cnt + 1 << ": ";
cin >> Tracks[cnt];
if (Tracks[cnt] == -1)
{
AlbumSize = cnt + 1;
break;
}
}