假设我需要格式化数组的输出以在每行显示固定数量的元素.我如何使用模数运算来做到这一点?
使用C++,下面的代码适用于每行显示6个元素,但我不知道它是如何工作的?
for ( count = 0 ; count < size ; count++)
{
cout << somearray[count];
if( count % 6 == 5) cout << endl;
}
Run Code Online (Sandbox Code Playgroud)
如果我想每行显示5个元素怎么办?我如何找到所需的确切表达式?
KCH*_*KCH 38
在C++表达式中a % b返回a除以b的余数(如果它们是正数.对于负数,结果的符号是实现定义的).例如:
5 % 2 = 1
13 % 5 = 3
Run Code Online (Sandbox Code Playgroud)
有了这些知识,我们就可以尝试理解您的代码.条件count % 6 == 5意味着当除数计数的剩余部分为5时,将写入换行符.这种情况多久发生一次?相距6行(练习:写入数字1..30并在满足此条件的情况下加下划线),从第6行开始(计数= 5).
要从代码中获得所需的行为,您应该将条件更改为count % 5 == 4,从第5行(count = 4)开始,每5行会给出换行符.
小智 6
基本上模数运算符给你余数简单的数学例子剩下的是11的剩余部分除以3?答案是2
同样的事情C++有 模数运算符('%')
解释的基本代码
#include <iostream>
using namespace std;
int main()
{
int num = 11;
cout << "remainder is " << (num % 3) << endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
哪个会显示
余数是2
它给出了除法的余数。
int c=11, d=5;
cout << (c/d) * d + c % d; // gives you the value of c
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
267988 次 |
| 最近记录: |