落書きノート

ふと自分が気になった事を書いてます

OCamlで問題を解く

OCamlも並行してやってます。せめて配列、リストを使うところまでは進めておきたいなと。

open Printf;;
print_string "整数を加算します。\n";;
print_string "何個加算しますか : ";;
let n = read_int()
let total = ref 0
let cnt = ref 0
let rec main i = if i = n then
                   ()
                 else
                   (
                     print_string "整数(0で終了) : ";
                     let v = read_int() in
                     if !total + v > 1000 then
                       (
                         print_string "合計が1000を超えました。\n";
                         print_string "最後の数値は無視します。\n";
                         cnt := i
                       )
                     else
                       (
                         total := !total + v;
                         cnt := i;
                         main (i + 1)
                       )
                   );;
main 0;;
printf "合計は%dです。\n" !total;;
printf "平均は%dです。\n" (!total / !cnt);;




open Printf;;
print_string "整数を加算します。\n";;
print_string "何個加算しますか : ";;
let n = read_int()
let total = ref 0
let cnt = ref 0
let rec main i = if i = n then
                   ()
                 else
                   (
                     print_string "整数 : ";
                     let num = read_int() in
                     if num < 0 then
                       (
                         print_string "負の数は加算しません。\n";
                         main (i + 1)
                       )
                     else
                       (
                         total := !total + num;
                         cnt := !cnt + 1;
                         main (i + 1)
                       )
                   );;
main 0;;
printf "合計は%dです。\n" !total;;
printf "平均は%dです。\n" (!total / !cnt);;