アルバムの12曲を数分入力して2分単位で入力し、両者の適切な配列に格納してからアルバムの長さを返すプログラムを作成しています。平均的な曲の長さ、最短の曲、最長の曲です。私の現在のコードのほとんどすべてがうまくいっていますが、私の数字が正しいということでいくつかの深刻な問題があります。フォーマットするときに、ちょうど秒にフォーマットし、セミコロンと1桁の数字の前に0をつけるようにフォーマットされている間は、分と秒に戻ります。詳しい説明は添付の画像をご覧ください。ここで数字を失う/変更する数値
コードは次のとおりです。
#include <iostream>
#include <iomanip>
#include <string>
using namespace std;
void displayTime(int);
int main()
{
const int SIZE = 12;
int mins[SIZE], secs[SIZE],minsToSecs[SIZE], totalSecs[SIZE];
int count = 0;
int shortest, longest, totalAlbumLength, averageLengthOfTracks;
cout << "Welcome to my Album Length Calculator" << endl;
cout << "Please enter all track lengths in minutes and seconds" << endl;
cout << "seperated by a space." << endl;
while (count < SIZE)
{
cout << "Track " << count + 1 << ": ";
cin >> mins[count];
cin >> secs[count];
count++;
}
for (int i = 0; i < SIZE; i++)
{
minsToSecs[i] = mins[i] * 60;
}
for (int i = 0; i < SIZE; i++)
{
totalSecs[i] = minsToSecs[i] + secs[i];
}
shortest = totalSecs[0];
for (int i = 0; i < SIZE; i++)
if (shortest > totalSecs[i])
shortest = totalSecs[i];
longest = totalSecs[0];
for (int i = 0; i < SIZE; i++)
if (longest < totalSecs[i])
longest = totalSecs[i];
totalAlbumLength = 0;
for (int i = 0; i < SIZE; i++)
totalAlbumLength += totalSecs[i];
averageLengthOfTracks = totalAlbumLength/SIZE;
cout << "The Shortest track was ";
displayTime(shortest);
cout << "The Longest track was ";
displayTime(longest);
cout << "The Total Album Length was ";
displayTime(totalAlbumLength);
cout << "The Average Track Length was ";
displayTime(averageLengthOfTracks);
system("PAUSE");
return 0;
}
void displayTime(int input)
{
int mins, secs;
mins = input/60;
secs = input % 60;
cout << mins << " : " << setfill('0') << setw(2) << mins << endl;
}
は私が単に見落としてきたことを、ここで見つからないか、いくつかの簡単なのです何かがありますか?
ようこそスタックオーバーフロー!デバッガを使用してコードをステップ実行する方法を学ぶ必要があるようです。良いデバッガを使用すると、プログラムを1行ずつ実行し、どこからずれているかを確認することができます。これはプログラミングをする場合に不可欠なツールです。さらに読む:** [小さなプログラムをデバッグする方法](http://ericlippert.com/2014/03/05/how-to-debug-small-programs/)** – NathanOliver
'SIZE'を1または2にするあなたのプログラムをデバッグしてください。このエラーを表示するには、12個の項目は必要ありません。また、[あなたのプログラムのこの最小化バージョン](http://ideone.com/lzevHj)は、ここでテストして投稿した[mcve]の例です。 – PaulMcKenzie