int H;
int M;
int SleepH;
int SleepM;
cout << NumActivities[2][0];
cin >> H >> M;
cout << NumActivities[2][1];
cin >> SleepH >> SleepM;
int SubtractM;
int SubtractH;
if (H<=12)
{
int MH=24;
int MM=60;
SubtractH= MH-H;
SubtractM = MM-M;
}
if (SleepM==00)
{
int SleepM= SleepM+60;
int TimeLeftH;
TimeLeftH= SleepH-SubtractH;
int TimeLeftM;
TimeLeftM= SleepM-SubtractM;
int F;
F=TimeLeftM/60;
int DoThisZ;
DoThisZ= TimeLeftH + F;
float Normal = Normal + DoThisZ;
cout<<Normal;
}
}
}
以上是我的计划。它还没有完成但是在运行时程序会在第64行输出NumActivities [2] [1]后立即提前结束。我找不到任何方法来阻止它并且取消循环不会改变任何东西。
我希望程序让我输入变量H,M,SleepH和SleepM然后显示结果,但它只是在显示NumActivities [2] [1]后关闭而不让我输入变量。
答案 0 :(得分:1)
当程序问你&#34;你的睡觉时间是什么时候?(24小时格式):&#34;,如果你的答案包含冒号(:),则需要输入你的下一个问题 - & #34;你睡了多久?:&#34; - 以及。
这是因为在C ++中,逗号分隔符不是数字的一部分,因为整数的小数点不是,所以只要操作找到逗号或点,提取操作就会结束,离开该字符作为下一个要提取的。后续的提取操作会将该字符作为第一个要提取的字符,因此它们都会返回。
输入您的第一个答案,例如&#34; 11 30&#34; - 数字之间的空格,而不是冒号。然后,该程序也应该为您的下一个问题提供输入。
只是给出一个建议,你就是在浪费你的迭代数0,1,2,4,5。所以,你可以简单地拿掉for循环。