home > 写経編 > 柴田望洋『明解C言語 入門編』 > 6. 関数 >

ForNext

Only Do What Only You Can Do

047. 配列の受け渡し

VBScript

JScript

Perl

更新日 : 2010.10.18
$NINSU = 5;

sub max_of
{
    (@vc) = @_;

    $no  = $vc[0];
    $max = $vc[1];

    for (2..$no + 1)
    {
        $max = $vc[$_] if ($vc[$_] > $max);
    }

    return $max;
}

print "$NINSU人の点数を入力してください。\n";

for (0..$NINSU - 1)
{
    printf("[%d] 英語:", $_ + 1);
    chomp($eng[$_] = <>);

    printf("    数学:");
    chomp($mat[$_] = <>);
}

$max_e = &max_of($NINSU, @eng);
$max_m = &max_of($NINSU, @mat);

printf("英語の最高点%d\n", $max_e);
printf("数学の最高点%d\n", $max_m);
L:\>perl lesson_06_047.pl
5人の点数を入力してください。
[1] 英語:53
    数学:82
[2] 英語:49
    数学:35
[3] 英語:21
    数学:72
[4] 英語:91
    数学:35
[5] 英語:77
    数学:12
英語の最高点91
数学の最高点82

PHP

更新日 : 2010.11.03
<?php
$NINSU = 5;

function max_of($no, $vc)
{
    $max = $vc[0];

    for ($i = 0; $i < $no; $i++)
    {
        if ($vc[$i] > $max) $max = $vc[$i];
    }

    return $max;
}

print "$NINSU 人の点数を入力してください。\n";

$fp = fopen("php://stdin", "r");

for ($i = 0; $i < $NINSU; $i++)
{
    printf("[%d] 英語:", $i + 1);
    $eng[$i] = rtrim(fgets($fp), "\n\r");

    printf("    数学:");
    $mat[$i] = rtrim(fgets($fp), "\n\r");
}

fclose($fp);

$max_e = max_of($NINSU, $eng);
$max_m = max_of($NINSU, $mat);

printf("英語の最高点%d\n", $max_e);
printf("数学の最高点%d\n", $max_m);
?>
L:\>php lesson_06_047.php
5 人の点数を入力してください。
[1] 英語:53
    数学:82
[2] 英語:49
    数学:35
[3] 英語:21
    数学:72
[4] 英語:91
    数学:35
[5] 英語:77
    数学:12
英語の最高点91
数学の最高点82

Python

更新日 : 2010.11.17
# coding: Shift_JIS

NINSU = 5

def max_of(no, vc):
    max = vc[0]

    for i in range(0, no, 1):
        if (vc[i] > max):
            max = vc[i]

    return max

print "%d人の点数を入力してください。" % NINSU

eng = []
mat = []

for i in range(0, NINSU, 1):
    print "[%d] 英語:" % (i + 1),
    eng.append(int(raw_input()))

    print "    数学:",
    mat.append(int(raw_input()))

max_e = max_of(NINSU, eng)
max_m = max_of(NINSU, mat)

print "英語の最高点%d" % max_e
print "数学の最高点%d" % max_m
N:\>python lesson_06_047.py
5人の点数を入力してください。
[1] 英語: 53
    数学: 82
[2] 英語: 49
    数学: 35
[3] 英語: 21
    数学: 72
[4] 英語: 91
    数学: 35
[5] 英語: 77
    数学: 12
英語の最高点91
数学の最高点82

Ruby

更新日 : 2010.11.01
NINSU = 5

def max_of(no, vc)
    max = vc[0]

    for i in 1..(no - 1)
        max = vc[i] if (vc[i] > max)
    end

    return max
end

print "#{NINSU}人の点数を入力してください。\n"

eng = []
mat = []

for i in 0..(NINSU - 1)
    printf("[%d] 英語:", i + 1)
    eng[i] = STDIN.gets.chomp.to_i

    printf("    数学:")
    mat[i] = STDIN.gets.chomp.to_i
end

max_e = max_of(NINSU, eng)
max_m = max_of(NINSU, mat)

printf("英語の最高点%d\n", max_e)
printf("数学の最高点%d\n", max_m)
L:\>ruby  l:\lesson_06_047.rb
5人の点数を入力してください。
[1] 英語:53
    数学:82
[2] 英語:49
    数学:35
[3] 英語:21
    数学:72
[4] 英語:91
    数学:35
[5] 英語:77
    数学:12
英語の最高点91
数学の最高点82

PowerShell

Scala

F#

C

更新日 : 2010.10.08
#include <stdio.h>

#define NINSU 5

int max_of(int vc[], int no)
{
    int i;
    int max = vc[0];
    for (i = 1; i < no; i++)
        if (vc[i] > max) max = vc[i];

    return max;
}

int main(int argc, char* argv[])
{
    int i;
    int eng[NINSU];
    int mat[NINSU];
    int max_e, max_m;

    printf("%d人の点数を入力してください。\n", NINSU);

    for (i = 0; i < NINSU; i++)
    {
        printf("[%d] 英語:", i + 1);
        scanf("%d", &eng[i]);

        printf("    数学:");
        scanf("%d", &mat[i]);
    }

    max_e = max_of(eng, NINSU);
    max_m = max_of(mat, NINSU);

    printf("英語の最高点%d\n", max_e);
    printf("数学の最高点%d\n", max_m);

    return 0;
}
R:\>lesson047\project1.exe
5人の点数を入力してください。
[1] 英語:53
    数学:82
[2] 英語:49
    数学:35
[3] 英語:21
    数学:72
[4] 英語:91
    数学:35
[5] 英語:77
    数学:12
英語の最高点91
数学の最高点82

C++

C++Builder

VC++

C#

Java

更新日 : 2010.11.05
import java.util.Scanner;

class Lesson047 {
    static final int NINSU = 5;

    public static void main(String[] args) {
        int[] eng = new int [NINSU];
        int[] mat = new int [NINSU];

        System.out.printf("%d人の点数を入力してください。\n", NINSU);
        Scanner stdIn = new Scanner(System.in);

        for (int i = 0; i < NINSU; i++)
        {
            System.out.printf("[%d] 英語:", i + 1);
            eng[i] = stdIn.nextInt();

            System.out.printf("    数学:");
            mat[i] = stdIn.nextInt();
        }

        int max_e = max_of(eng, NINSU);
        int max_m = max_of(mat, NINSU);

        System.out.printf("英語の最高点%d\n", max_e);
        System.out.printf("数学の最高点%d\n", max_m);
    }

    static int max_of(int vc[], int no) {
        int max = vc[0];
        for (int i = 1; i < no; i++)
            if (vc[i] > max) max = vc[i];

        return max;
    }
}
L:\>java Lesson047
5人の点数を入力してください。
[1] 英語:53
    数学:82
[2] 英語:49
    数学:35
[3] 英語:21
    数学:72
[4] 英語:91
    数学:35
[5] 英語:77
    数学:12
英語の最高点91
数学の最高点82

Objective-C

D

VB

VB.NET

Delphi

更新日 : 2010.09.24
program Project1;

{$APPTYPE CONSOLE}

uses
    SysUtils;

function max_of(vc:array of Integer): Integer;
var
    i: Integer;
begin
    result := vc[0];

    for i := Low(vc) to High(vc) do
        if vc[i] > result then  result := vc[i];
end;

const
    NINSU = 5;
var
    i: Integer;
    eng: array[1..NINSU] of Integer;
    mat: array[1..NINSU] of Integer;
    max_e, max_m: Integer;
begin
    writeln(format('%d人の点数を入力してください。', [NINSU]));

    for i := 1 to NINSU do
    begin
        write(format('[%d] 英語:', [i]));
        read(eng[i]);

        write('    数学:');
        read(mat[i]);
    end;

    max_e := max_of(eng);
    max_m := max_of(mat);

    writeln(format('英語の最高点%d', [max_e]));
    writeln(format('数学の最高点%d', [max_m]));
end.
S:\>lesson047\project1.exe
5人の点数を入力してください。
[1] 英語:53
    数学:82
[2] 英語:49
    数学:35
[3] 英語:21
    数学:72
[4] 英語:91
    数学:35
[5] 英語:77
    数学:12
英語の最高点91
数学の最高点82

Ada

PL/SQL

T-SQL

関数型

inserted by FC2 system