[英]Number lines and modulus C++
我正在尝试与情况3相反。因此,想法是,您可以说“ x从sat开始的天数为_”。 这在我的case 3
效果很好,因此我认为如果您想解决“坐姿将是_天的x天”,同样的方法也会起作用 。 现在,我的case 4
直到输入6才起作用,然后您输入负数,而在进行此操作时我并没有对此进行char dayChar[7][4] {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};
...而且我的程序基于数组char dayChar[7][4] {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};
这样您是否可以看到case 4
并非真正起作用。 关于如何可以做到这一点的任何建议都可以奏效? 在此先感谢一吨。
case 3: // Add days
cout << "Day selected is " << day << endl;
cout << "How many days would you like to add?" << endl;
cin >> addOrSub;
temp = (dayNum + addOrSub);
dayNum = (temp % 7);
cout << addOrSub << " days from " << day << " will be " << dayChar[dayNum] << endl;
break;
case 4: // Subtract days
cout << "Day selected is " << day << endl;
cout << "How many days would you like to subtract?" << endl;
cin >> addOrSub;
temp = (dayNum - addOrSub);
dayNum = (temp % 7);
cout << addOrSub << " before " << day << " was " << dayChar[dayNum] << endl;
一个简单的解决方案是: dayNum = ((temp % 7) + 7) % 7;
由于temp % 7
保证大于-7,因此保证将7添加给您一个正数,它等于原始数值(模7)。 但是,结果数可能大于7,这就是为什么需要附加的模运算的原因。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.