C++ 秒分时为 0
C++ Seconds Minutes Hours when 0
我是一名正在学习 C++ 的编程初学者。
我有一些代码可以以小时、分钟和秒为单位给出输出。
喜欢:
x hours y minutes z seconds
我想要的是,当 x, y or z
等于 0
时,不显示:
30hours 0minutes 5seconds
会变成:
30hours 5seconds
。
我可以通过使用大量的 if 条件来做到这一点,但它变得非常混乱。
如果有其他方法请告诉我,因为我真的很想学习正确的方法
提前致谢
--编辑--
这是我的实际代码
if (hours == 0 && mins == 0 && secs != 0) {
cout << secs << "secs " << endl;
}
if (hours == 0 && mins != 0 && secs == 0) {
cout << mins << "mins " << endl;
}
if (hours != 0 && mins == 0 && secs == 0) {
cout << hours << "hours " << endl;
}
if (hours == 0 && mins != 0 && secs != 0) {
cout << mins << "mins " << secs << "secs " << endl;
}
if (hours != 0 && mins == 0 && secs != 0) {
cout << hours << "hours " << secs << "secs " << endl;
}
if (hours != 0 && mins != 0 && secs == 0) {
cout << hours << "hours " << mins << "mins " << endl;
}
if (hours != 0 && mins != 0 && secs != 0) {
cout << hours << "hours " << mins << "mins " << secs << "secs " << endl;
}
这行得通,但我不认为实际的程序员就是这样做的。
这是秒到时分秒的转换器
void readabletime(const double a){
hours = a / 3600;
mins = (a/60 - hours * 60);
secs = (a - ((hours * 3600) + (mins * 60)));
---更新----
我想到了一种更简单的方法来使用 3 个条件
if (hours != 0) {
cout << hours << "hours";
}
if (mins != 0) {
cout << mins << "mins"
}
if (secs != 0) {
cout << secs << "secs"
}
尝试这样的事情:
if (hours > 0)
cout << hours << "hours ";
if (minutes > 0)
cout << minutes << "minutes ";
if (seconds > 0)
cout << seconds << "seconds ";
cout << endl;
该代码应该做你想做的,只有 3 个条件。如果所有值都为零,将只打印一个新行。
我是一名正在学习 C++ 的编程初学者。
我有一些代码可以以小时、分钟和秒为单位给出输出。 喜欢:
x hours y minutes z seconds
我想要的是,当 x, y or z
等于 0
时,不显示:
30hours 0minutes 5seconds
会变成:
30hours 5seconds
。
我可以通过使用大量的 if 条件来做到这一点,但它变得非常混乱。
如果有其他方法请告诉我,因为我真的很想学习正确的方法
提前致谢
--编辑-- 这是我的实际代码
if (hours == 0 && mins == 0 && secs != 0) {
cout << secs << "secs " << endl;
}
if (hours == 0 && mins != 0 && secs == 0) {
cout << mins << "mins " << endl;
}
if (hours != 0 && mins == 0 && secs == 0) {
cout << hours << "hours " << endl;
}
if (hours == 0 && mins != 0 && secs != 0) {
cout << mins << "mins " << secs << "secs " << endl;
}
if (hours != 0 && mins == 0 && secs != 0) {
cout << hours << "hours " << secs << "secs " << endl;
}
if (hours != 0 && mins != 0 && secs == 0) {
cout << hours << "hours " << mins << "mins " << endl;
}
if (hours != 0 && mins != 0 && secs != 0) {
cout << hours << "hours " << mins << "mins " << secs << "secs " << endl;
}
这行得通,但我不认为实际的程序员就是这样做的。
这是秒到时分秒的转换器
void readabletime(const double a){
hours = a / 3600;
mins = (a/60 - hours * 60);
secs = (a - ((hours * 3600) + (mins * 60)));
---更新---- 我想到了一种更简单的方法来使用 3 个条件
if (hours != 0) {
cout << hours << "hours";
}
if (mins != 0) {
cout << mins << "mins"
}
if (secs != 0) {
cout << secs << "secs"
}
尝试这样的事情:
if (hours > 0)
cout << hours << "hours ";
if (minutes > 0)
cout << minutes << "minutes ";
if (seconds > 0)
cout << seconds << "seconds ";
cout << endl;
该代码应该做你想做的,只有 3 个条件。如果所有值都为零,将只打印一个新行。