#include <stdio.h>
// r: Consider a[0] like a row. (C uses row major)
// c: Consider a[0] like a column. (C uses column major)
void r_rowmajor(int a[2][3])
{
for (int c = 0; c < 2; c++)
for (int r = 0; r < 3; r++)
}
void r_colmajor(int a[2][3])
{
for (int r = 0; r < 3; r++)
for (int c = 0; c < 2; c++)
}
void c_rowmajor(int a[2][3])
{
for (int c = 0; c < 3; c++)
for (int r = 0; r < 2; r++)
}
void c_colmajor(int a[2][3])
{
for (int r = 0; r < 2; r++)
for (int c = 0; c < 3; c++)
}
int main(void)
{
int a[2][3] = {
{ 1, 2, 3 }, { 4, 5, 6 },
};
c_rowmajor(a);
c_colmajor(a);
r_rowmajor(a);
r_colmajor(a);
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgovLyByOiBDb25zaWRlciBhWzBdIGxpa2UgYSByb3cuIChDIHVzZXMgcm93IG1ham9yKQoKLy8gYzogQ29uc2lkZXIgYVswXSBsaWtlIGEgY29sdW1uLiAoQyB1c2VzIGNvbHVtbiBtYWpvcikKCnZvaWQgcl9yb3dtYWpvcihpbnQgYVsyXVszXSkKewoJcHJpbnRmKCJyX3Jvd21ham9yOiIpOwoJZm9yIChpbnQgYyA9IDA7IGMgPCAyOyBjKyspCgkJZm9yIChpbnQgciA9IDA7IHIgPCAzOyByKyspCgkJCXByaW50ZigiICVkIiwgYVtjXVtyXSk7CglwdXRzKCIiKTsKfQoKdm9pZCByX2NvbG1ham9yKGludCBhWzJdWzNdKQp7CglwcmludGYoInJfY29sbWFqb3I6Iik7Cglmb3IgKGludCByID0gMDsgciA8IDM7IHIrKykKCQlmb3IgKGludCBjID0gMDsgYyA8IDI7IGMrKykKCQkJcHJpbnRmKCIgJWQiLCBhW2NdW3JdKTsKCXB1dHMoIiIpOwp9Cgp2b2lkIGNfcm93bWFqb3IoaW50IGFbMl1bM10pCnsKCXByaW50ZigiY19yb3dtYWpvcjoiKTsKCWZvciAoaW50IGMgPSAwOyBjIDwgMzsgYysrKQoJCWZvciAoaW50IHIgPSAwOyByIDwgMjsgcisrKQoJCQlwcmludGYoIiAlZCIsIGFbcl1bY10pOwoJcHV0cygiIik7Cn0KCnZvaWQgY19jb2xtYWpvcihpbnQgYVsyXVszXSkKewoJcHJpbnRmKCJjX2NvbG1ham9yOiIpOwoJZm9yIChpbnQgciA9IDA7IHIgPCAyOyByKyspCgkJZm9yIChpbnQgYyA9IDA7IGMgPCAzOyBjKyspCgkJCXByaW50ZigiICVkIiwgYVtyXVtjXSk7CglwdXRzKCIiKTsKfQoKaW50IG1haW4odm9pZCkKewoJaW50IGFbMl1bM10gPSB7CgkJeyAxLCAyLCAzIH0sIHsgNCwgNSwgNiB9LAoJfTsKCgljX3Jvd21ham9yKGEpOwoJY19jb2xtYWpvcihhKTsKCXJfcm93bWFqb3IoYSk7CglyX2NvbG1ham9yKGEpOwp9