2012-09-23 38 views
14

Giả sử tôi cần định dạng đầu ra của một mảng để hiển thị số phần tử cố định trên mỗi dòng. Làm thế nào để tôi đi về làm điều đó bằng cách sử dụng hoạt động modulus?Toán tử mô đun hoạt động như thế nào?

Sử dụng C++, mã bên dưới hoạt động để hiển thị 6 thành phần trên mỗi dòng nhưng tôi không biết làm cách nào và tại sao nó hoạt động?

for (count = 0 ; count < size ; count++) 
{ 
    cout << somearray[count]; 
    if(count % 6 == 5) cout << endl; 
} 

Nếu tôi muốn hiển thị 5 thành phần trên mỗi dòng thì sao? Làm cách nào để tôi tìm thấy biểu thức chính xác cần thiết?

Trả lời

1

Nó cung cấp cho bạn phần còn lại của một bộ phận.

int c=11, d=5; 
cout << (c/d) * d + c % d; // gives you the value of c 
1

Bạn có thể nghĩ toán tử mô đun là phần còn lại. đếm% 6 chia 6 số lần nhiều nhất có thể và cung cấp cho bạn số dư còn lại từ 0 đến 5 (Đây là tất cả số tiền còn lại có thể vì bạn đã chia ra 6 số lần nhiều nhất có thể). Các phần tử của mảng đều được in trong vòng lặp for, nhưng mỗi lần phần còn lại là 5 (mỗi phần tử thứ 6), nó xuất ra một ký tự dòng mới. Điều này cung cấp cho bạn 6 phần tử trên mỗi dòng. Đối với 5 yếu tố trên mỗi dòng, sử dụng

if (count% 5 == 4)

23

trong C++ biểu a % b lợi nhuận còn lại của bộ phận của một bằng b (nếu họ là tích cực. Đối với dấu hiệu số âm của kết quả được thực hiện xác định). Ví dụ:

5 % 2 = 1 
13 % 5 = 3 

Với kiến ​​thức này, chúng tôi có thể cố gắng hiểu mã của bạn. Điều kiện count % 6 == 5 có nghĩa là dòng mới sẽ được viết khi phần còn lại chia cho 6 là năm. Mức độ thường xuyên xảy ra như thế nào? Cách nhau chính xác 6 dòng (tập thể dục: viết các số 1..30 và gạch dưới các số đáp ứng điều kiện này), bắt đầu từ dòng thứ 6 (đếm = 5).

Để có được hành vi mong muốn từ mã của bạn, bạn nên thay đổi điều kiện thành count % 5 == 4, điều sẽ cung cấp cho bạn dòng mới mỗi 5 dòng, bắt đầu từ dòng thứ 5 (đếm = 4).

+3

"Đối với số âm sig n của kết quả được thực hiện xác định "Điều này không đúng trong C++ 11 - xem ISO14882: 2011 (e) 5.6-4 hoặc https://stackoverflow.com/questions/7594508. –

1

Dự án này JSFiddle lon giúp bạn hiểu công việc như thế nào mô đun: http://jsfiddle.net/elazar170/7hhnagrj

function modulus(x,y){ 
    var m = Math.floor(x/y); 
    var r = m * y; 
    return x - r; 
} 
1

Về cơ bản mô đun điều hành cung cấp cho bạn phần còn lại Ví dụ đơn giản trong toán học những gì còn lại/còn lại của 11 chia cho 3? Câu trả lời là 2

cho điều tương tự C++ có nhà điều hành mô đun ('%')

mã cơ bản để giải thích

#include <iostream> 
using namespace std; 


int main() 
{ 
    int num = 11; 
    cout << "remainder is " << (num % 3) << endl; 

    return 0; 
} 

nào sẽ hiển thị

còn lại là 2

Các vấn đề liên quan