乱数の並び替え
Posted: 2015年6月13日(土) 21:58
こんばんは、初めまして。
私はC言語の初心者です。
1~100までの乱数を100個作り、小さい順に並べるという問題を解いています。
random_seed()を使ってはいけないので、苦戦しています。
私はC言語の初心者です。
1~100までの乱数を100個作り、小さい順に並べるという問題を解いています。
random_seed()を使ってはいけないので、苦戦しています。
random_seed()の話題が出るということは、おそらくFortranをお使いになっているのですね。ブルースカイ さんが書きました:random_seed()を使ってはいけないので、苦戦しています。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N (100)
void init(int *a)
{
int i;
for (i = 0; i < N; i++) {
a[i] = rand() % 100 + 1; // とりあえずrand()で十分でしょう
}
}
void sort(int *a)
{
int i, j, t;
// とりあえずバブルソートで十分でしょう
for (i = 0; i < N - 1; i++) {
for (j = i + 1; j < N; j++) {
if (a[i] > a[j]) {
t = a[i], a[i] = a[j], a[j] = t;
}
}
}
}
void print(int *a)
{
int i;
for (i = 0; i < N; i++) {
printf("%d ", a[i]);
}
putchar('\n');
}
int main(void)
{
int a[N];
srand((unsigned) time(NULL));
init(a);
sort(a);
print(a);
return 0;
}
まず使用する言語を指定してください。ブルースカイ さんが書きました:書き方のご指摘を受けました。
内容が曖昧で、申し訳ありません。
二分決定木をif文で表現することで小さい順に並べることはできるでしょうが、やるべきではありません。ブルースカイ さんが書きました:小さい順に乱数を並べる場合、一回ずつifを使うべきでしょうか?