プロが教えるわが家の防犯対策術!

「20個の乱数(100未満)を発生させ, その最大値と最小値の下に↑を表示する」
この条件に合うコードを教えて下さい

A 回答 (3件)

function myFunction() {


 var nums = [];
 // 20個の乱数(100未満)を生成する
 for (var i=0; i < 20; i++) {
  nums.push([Math.floor(Math.random() * 99) + 1, '']);
 }
 // 最大値と最小値を見つける
 var max = 0, min = 99;
 for (var i=0; i < nums.length; i++) {
  if (max <= nums[i][0]) {
   max = nums[i][0];
  }
 }
 for (var i=0; i < nums.length; i++) {
  if (min >= nums[i][0]) {
   min = nums[i][0];
  }
 }
 for (var i=0; i < nums.length; i++) {
  if (nums[i][0] == max) {
   nums[i][1] = '←';
  } else if (nums[i][0] == min) {
   nums[i][1] = '←';
  }
 }
 // すべて表示する
 for (var i=0; i < nums.length; i++) {
  Logger.log(nums[i][0], nums[i][1]);
 }
}
    • good
    • 0

> その最大値と最小値の下に↑を表示する



↑は全角文字なので、ASCIIベースの表示プログラムだと一般にはズレが生じます。ので、額面通り問題を受け取ると、「そんなもんはプログラム出来ない」が答えになりますね。
↑の代わりに半角文字であるカレット(^)を用いると次のようになるでしょう。やっつけですが。

// ここから

import java.util.Random;

public class Main {

 public static void main(String[] args) {
  int array[], i, j, k, x, n;
  String str[][];
  String result[];
  array = new int[20];
  str = new String[2][20];
  result = new String[2];
  x = 0; n = 100; j = 0; k = 0;
  Random random = new Random();
  for (i = 0; i < 20; i++) {
   array[i] = random.nextInt(100);
  }
  for (i = 0; i < 20; i++) {
   str[0][i] = String.format("%3d", array[i]);
  }
  for (i = 0; i < 20; i++) {
   str[1][i] = " ";
  }
  for (i = 0; i < 20; i++) {
   if (array[i] > x) {
    x = array[i];
    j = i;
   }
   if (array[i] < n) {
    n = array[i];
    k = i;
   }
  }
  str[1][j] = " ^";
  str[1][k] = " ^";
  for (i = 0; i < 2; i++) {
   result[i] = String.join("", str[i]);
  }
  for (i = 0; i < 2; i++) {
   System.out.println(result[i]);
  }
 }
}
    • good
    • 0

Google Apps Script で。

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!