2行3列の行列を加算する (多次元配列)

明解C言語 入門編 > 5. 配列 >

2行3列の行列を加算する (多次元配列)

C


#include <stdio.h>
int main(int argc, char* argv[])
{
int i, j;
int ma[2][3] = {{1, 2, 3}, {4, 5, 6}};
int mb[2][3] = {{6, 3, 4}, {5, 1, 2}};
int mc[2][3] = {0};

for (i = 0; i < 2; i++)
{
for (j = 0; j < 3; j++)
printf("%3d", mc[i][j]);
putchar('\n');
}

for (i = 0; i < 2; i++)
for (j = 0; j < 3; j++)
mc[i][j] = ma[i][j] + mb[i][j];

for (i = 0; i < 2; i++)
{
for (j = 0; j < 3; j++)
printf("%3d", mc[i][j]);
putchar('\n');
}

return 0;
}

実行結果


R:\>lesson037\project1.exe
0 0 0
0 0 0
7 5 7
9 6 8

Delphi


program Project1;

{$APPTYPE CONSOLE}

uses
SysUtils;
var
i, j: Integer;
ma: array[1..2] of array[1..3] of Integer = ((1, 2, 3), (4, 5, 6));
mb: array[1..2] of array[1..3] of Integer = ((6, 3, 4), (5, 1, 2));
mc: array[1..2] of array[1..3] of Integer;
begin
for i := 1 to 2 do
begin
for j := 1 to 3 do
write(format('%3d', [mc[i][j]]));
write(#13#10);
end;

for i := 1 to 2 do
for j := 1 to 3 do
mc[i][j] := ma[i][j] + mb[i][j];

for i := 1 to 2 do
begin
for j := 1 to 3 do
write(format('%3d', [mc[i][j]]));
write(#13#10);
end;
end.

実行結果


S:\>lesson037\project1.exe
0 0 0
0 0 0
7 5 7
9 6 8

Perl
@ma  = ([1, 2, 3], [4, 5, 6]);
@mb  = ([6, 3, 4], [5, 1, 2]);
@mc  = ([], []);

foreach $i(0..1)
{
    foreach $j(0..2)
    {
        printf("%3d", $mc[$i][$j]);
    }
    print "\n";
}

foreach $i(0..1)
{
    foreach $j(0..2)
    {
        $mc[$i][$j] = $ma[$i][$j] + $mb[$i][$j];
    }
}

foreach $i(0..1)
{
    foreach $j(0..2)
    {
        printf("%3d", $mc[$i][$j]);
    }
    print "\n";
}

実行結果

L:\>perl lesson_05_037.pl
0 0 0
0 0 0
7 5 7
9 6 8

Ruby
ma  = [[1, 2, 3], [4, 5, 6]]
mb  = [[6, 3, 4], [5, 1, 2]]
mc  = [[], []]

for i in 0..1
    for j in 0..2
        printf("%3d", mc[i][j])
    end
    puts ""
end

for i in 0..1
    for j in 0..2
        mc[i][j] = ma[i][j] + mb[i][j]
    end
end

for i in 0..1
    for j in 0..2
        printf("%3d", mc[i][j])
    end
    puts ""
end

実行結果

L:\>ruby l:\lesson_05_037.rb
0 0 0
0 0 0
7 5 7
9 6 8