C言語 中央値を求めるプログラム

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
shion

C言語 中央値を求めるプログラム

#1

投稿記事 by shion » 6年前

問題
入力された数(最大10個)を昇順に並び替え、中央値を求めるプログラムを作成せよ。
又、処理結果は改行しながら表示し、中央値には*を併記せよ。


1
3
4
6*
8
9
11

この問題なんですが、組み方が全く分かりません。
御教授お願いします。

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

Re: C言語 中央値を求めるプログラム

#2

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

まずは入力された数(最大10個)をそのまま改行しながら表示するプログラムは作れますか?
提示された「例」は*が入っていることから出力であると予想できますが、入力の例は提示できますか?
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

Shion

Re: C言語 中央値を求めるプログラム

#3

投稿記事 by Shion » 6年前

#include<stdio.h>
int main(void)
{
int input [10];

printf(“%d”,input [1]);
scanf(“%d”,input [1] );
/*これを10まで繰り返す*/
printf(”%d¥n“,input[1])
/*10回繰り返す*/

return 0;
}

入力はあってるでしょうか?

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

Re: C言語 中央値を求めるプログラム

#4

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

ソースコードを提示する際は、BBCodeが有効な(無効にしない)状態で、
BBCodeのcodeタグの開始タグと終了タグの組(開始タグが先)で囲んでいただけると、
見やすくてありがたいです。
Shion さんが書きました:入力はあってるでしょうか?
  • 引用符が全角
  • セミコロンが抜けている場所があり、引用符が適切だったとしてもコンパイルが通らない
  • 「10回繰り返す」と書いてあるだけでコンパイラに伝わるループが無いので、10回繰り返されない
  • printfに未初期化の自動変数の値(不定)を渡しているので、未定義動作になる
  • scanfにポインタではなく未初期化の自動変数の値(不定)を渡しているので、未定義動作になり、読み込まれればアクセス違反になる可能性が高い
  • (入力ではないが)エスケープシーケンスっぽい所に\(U+005C)ではなく¥(U+00A5)が使われているので、改行にならない
残念ながら、全然違いますね。
みけCAT さんが書きました:入力された数(最大10個)をそのまま改行しながら表示するプログラム
は例えばこんな感じになるでしょう。

コード:

/* 入出力関数の宣言を読み込み、使えるようにする */
#include <stdio.h>

/* 入力を受け付ける最大数 */
#define MAX 10

int main(void) {
	/* 変数の宣言 */
	int input[MAX]; /* 入力を保存する場所 */
	int count = 0; /* 入力の数を数える */
	int i; /* ループ用 */

	/* 入力 */
	while (count < MAX && scanf("%d", &input[count]) == 1) count++;

	/* 出力 */
	for (i = 0; i < count; i++) printf("%d\n", input[i]);

	/* 正常終了 */
	return 0;
}
昇順に並べるのは、例えばバブルソートを使えばいいでしょう。
中央値は、要素数が奇数の場合は昇順に並べた時の真ん中の要素の値、要素数が偶数の場合は昇順に並べた時の真ん中の要素2個の平均値です。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

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

Re: C言語 中央値を求めるプログラム

#5

投稿記事 by box » 6年前

データの個数が偶数である場合の中央値の求め方は既出ですが、
その場合、*の付け方はどうするんでしょうね。>質問者さん
中央値を計算するためのネタとなるデータ(2個)に*を付けるんでしょうか。
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。

返信

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