0から999までの乱数を10個作りint型の配列に入れ、最大値と最小値を表示するプログラムを作りなさい。
最初に求めた乱数をすべて表示し、最大値と最小値、それぞれの要素番号を表示すること。
*******0から999までの乱数を10個作りint型の配列に入れ、大きい順に表示するプログラムを作りなさい。
最初に求めた乱数をすべて表示し、次に大きい順に表示する。
ソートを使わず、以下のいずれかの方法で作成すること。
方法1:最大値を見つけたら表示し、その配列要素に-1を入れることを繰り返す。
方法2:配列を2つ用意し、最大値を見つけたらその配列要素を第2の配列にコピーする。
次に、第1の配列の最大値の値を-1にし、これを繰り返す。
最後に第1の配列の表示、第2の配列の表示を行う。
*******のとこの問題教えてください
プログラミング教えください
Re: プログラミング教えください
http://dixq.net/forum/viewtopic.php?f=3&t=8471
あなたは、「おつか」さん「ぼおおお」さんとは別人ですか?
同じ人ならハンドルネームを毎回変えるのをやめましょう。
作れるところまで、作って、わからないところを尋ねてください。
あなたは、「おつか」さん「ぼおおお」さんとは別人ですか?
同じ人ならハンドルネームを毎回変えるのをやめましょう。
作れるところまで、作って、わからないところを尋ねてください。
non
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: プログラミング教えください
毎回、名前を変更しないようにお願いします。
回答者も混乱しますし、あんまり印象的にも良く有りません。
この件についてはフォーラムルールにも記載されていますので、全部を一度お読みくださると嬉しいです。
http://dixq.net/board/board.html
それとご自分で作ったプログラムコードをcodeタグで囲って貼っていただくようにお願いします。
回答者も混乱しますし、あんまり印象的にも良く有りません。
この件についてはフォーラムルールにも記載されていますので、全部を一度お読みくださると嬉しいです。
http://dixq.net/board/board.html
それとご自分で作ったプログラムコードをcodeタグで囲って貼っていただくようにお願いします。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
-
井上
Re: プログラミング教えください
//難しいけどいい問題ですね!
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define ARRAY_COUNT (10) // 配列の数
#define RAN_NUM_MAX (1000) // ランダム値の最大値(0~999)用
void main(void)
{
int array[ ARRAY_COUNT ]; // 配列
srand((unsigned int)time(NULL));
// 乱数を10個の配列にセット
for(int i = 0; i < ARRAY_COUNT; i++ )
{
int num = rand()%RAN_NUM_MAX;
array[ i ] = num;
}
puts("");
puts("取得順に表示");
// 表示
for(int i = 0; i < ARRAY_COUNT; i++ )
{
printf("array[%d] = %d\n", i, array[ i ] );
}
puts("");
puts("方法1:大きい順に表示");
// 1forループ毎に、配列の中から最大値を表示する
int disp_count = ARRAY_COUNT; // 画面表示回数
while( disp_count > 0)
{
int max = -1; // 最大値を格納するための変数
int max_element_no = 0; // 最大値の要素番号を格納するための変数
// 配列のなかから最大値を求める
for(int i = 0; i < ARRAY_COUNT; i++)
{
if( array[ i ] > max )
{
max = array[ i ];
max_element_no = i;
}
}
// 最大値の配列に -1 を入れる
array[ max_element_no ] = -1;
printf("array[%d] = %d\n", max_element_no, max );
disp_count--; // 画面表示回数を減算
}
}
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define ARRAY_COUNT (10) // 配列の数
#define RAN_NUM_MAX (1000) // ランダム値の最大値(0~999)用
void main(void)
{
int array[ ARRAY_COUNT ]; // 配列
srand((unsigned int)time(NULL));
// 乱数を10個の配列にセット
for(int i = 0; i < ARRAY_COUNT; i++ )
{
int num = rand()%RAN_NUM_MAX;
array[ i ] = num;
}
puts("");
puts("取得順に表示");
// 表示
for(int i = 0; i < ARRAY_COUNT; i++ )
{
printf("array[%d] = %d\n", i, array[ i ] );
}
puts("");
puts("方法1:大きい順に表示");
// 1forループ毎に、配列の中から最大値を表示する
int disp_count = ARRAY_COUNT; // 画面表示回数
while( disp_count > 0)
{
int max = -1; // 最大値を格納するための変数
int max_element_no = 0; // 最大値の要素番号を格納するための変数
// 配列のなかから最大値を求める
for(int i = 0; i < ARRAY_COUNT; i++)
{
if( array[ i ] > max )
{
max = array[ i ];
max_element_no = i;
}
}
// 最大値の配列に -1 を入れる
array[ max_element_no ] = -1;
printf("array[%d] = %d\n", max_element_no, max );
disp_count--; // 画面表示回数を減算
}
}
Re: プログラミング教えください
IPが同一であれば同じ人です。non さんが書きました:http://dixq.net/forum/viewtopic.php?f=3&t=8471
あなたは、「おつか」さん「ぼおおお」さんとは別人ですか?
同じ人ならハンドルネームを毎回変えるのをやめましょう。
作れるところまで、作って、わからないところを尋ねてください。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: プログラミング教えください
井上さん、こちらは始めてですか?
回答していただくのはありがたいのですが、ぜひ、こちらのフォーラムルールをお読みください。
http://dixq.net/board/board.html
面倒だと思われるでしょうが、アドバイスをしていただけると助かります。
回答していただくのはありがたいのですが、ぜひ、こちらのフォーラムルールをお読みください。
http://dixq.net/board/board.html
面倒だと思われるでしょうが、アドバイスをしていただけると助かります。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: プログラミング教えください
それはちょっと言い過ぎでは?naohiro19 さんが書きました:IPが同一であれば同じ人です。
同じPCを複数人で共有することは普通にありますので。
逆にIPが異なれば別人かといえば、それも違いますね。
Re: プログラミング教えください
言語不明なので、C++0xだと勝手に解釈しました。
次のような感じでよいのでしょうか?
次のような感じでよいのでしょうか?
#include <iostream>
#include <algorithm>
#include <functional>
#include <iterator>
#include <random>
int main()
{
const int N = 10;
int array[N];
std::generate(array + 0, array + N, std::bind(std::uniform_int_distribution<int>(0, 999), std::mt19937()));
std::copy(array + 0, array + N, std::ostream_iterator<int>(std::cout, " "));
std::cout << std::endl;
for (int i = 0; i < N; i++)
{
auto it = std::max_element(array + 0, array + N);
std::cout << *it << ' ';
*it = -1;
}
std::cout << std::endl;
}