繁体   English   中英

数线和模数C ++

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM