配列 乱数

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
saigou
記事: 21
登録日時: 8年前

配列 乱数

#1

投稿記事 by saigou » 8年前

配列のプログラム

#include<stdio.h>

int main(void)
{
int i,j;
int a[3][3]={{91,22,45},{67,32,21},{67,99,77}};


for(i=0;i<3;i++){
for(j=0;j<3;j++){
printf("%4d",a[j]);
putchar('\n');
return 0;
}
というソースコードをがあるとし、それに乱数を用いりscanfで1<1000までの間で配列a[N]を決め、
配列の中身も乱数を用いるプログラムにするには上のソースコードのどこを変えればよろしいですか?

つまりa[N]={{ , , },{ , , ,} ................}}
のかっこ{}の中も乱数を使用するということです。

アバター
みけCAT
記事: 6734
登録日時: 13年前
住所: 千葉県
連絡を取る:

Re: 配列 乱数

#2

投稿記事 by みけCAT » 8年前

ソースコードを提示する際は、BBCodeを有効にした(無効にしない)状態でcodeタグで囲んでいただけると、見やすくてありがたいです。
saigou さんが書きました:乱数を用いりscanfで1<1000までの間で配列a[N]を決め
意味がよくわかりません。具体例を出していただけますか?
  • scanfはどのように用いる?
  • 「1<1000までの間」って何?例えば
    • [1, 1000) (1以上1000未満)
    • [1, 1000] (1以上1000以下)
    • (1, 1000) (1より大きく1000未満)
    • (1, 1000] (1より大きく1000以下)
    • int型の範囲すべて (1<1000は常に真)
saigou さんが書きました:配列の中身も乱数を用いる
saigou さんが書きました: つまりa[N]={{ , , },{ , , ,} ................}}
のかっこ{}の中も乱数を使用するということです。
配列の中身「も」ということは、配列の中身でない何かも乱数を用いるということですか?
それは具体的にどこですか?
saigou さんが書きました:上のソースコードのどこを変えればよろしいですか?
とりあえず、全角文字を使った#include<stdio.h>という部分は間違っています。
#include<stdio.h>としてください。
オフトピック

コード:

#define N 3][3
ということかな?

関連(?)
[C] ( 0][0 )/-ウンコード・マニア
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

saigou
記事: 21
登録日時: 8年前

Re: 配列 乱数

#3

投稿記事 by saigou » 8年前

説明不足ですいません、、


最初に1〜1000までの数から一つ好きな数を入力します。
入力した数が例えば5ならば、5×5の配列を作ります。
そして5×5の配列で表示する数字は乱数をもち入りたいということです

アバター
みけCAT
記事: 6734
登録日時: 13年前
住所: 千葉県
連絡を取る:

Re: 配列 乱数

#4

投稿記事 by みけCAT » 8年前

コード:

#include<stdio.h>
#include<stdlib.h>
#include<time.h>

int main(void)
{
    int N;
    int i,j;
    if (scanf("%d", &N) != 1 || N < 1 || 1000 < N) return 1;
    int a[N][N]; /* C99以降orGCC拡張の可変長配列 */

    /* 配列の各要素に適当な乱数を入れる(精度や範囲は環境依存) */
    srand((unsigned int)time(NULL));
    for (i = 0; i < N; i++) {
        for (j = 0; j < N; j++) a[i][j] = rand();
    }

    for(i=0;i<N;i++){
        for(j=0;j<N;j++){
            printf(" %4d",a[i][j]);
        }
        putchar('\n');
    }
    return 0;
}
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

box
記事: 2002
登録日時: 13年前

Re: 配列 乱数

#5

投稿記事 by box » 8年前

1000っていうのは仰々しすぎる気がしなくもありませんが…

コード:

def setAndPrintRandomNumber(arr, n)
  n.times do |i|
    n.times do |j|
      printf("%3d%s", arr[i][j] = rand(1..10), j == n - 1 ? "\n" : ",")
    end
  end
end

print "input number:"
while true
  n = STDIN.gets.chomp.to_i
  break if 1 <= n && n <= 1000
  print "input number:"
end
arr = Array.new(n) {Array.new(n)}
setAndPrintRandomNumber(arr, n)
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。

saigou
記事: 21
登録日時: 8年前

Re: 配列 乱数

#6

投稿記事 by saigou » 8年前

解決しました!

閉鎖

“C言語何でも質問掲示板” へ戻る