1万人分の身長データを小さい順に並べ替える方法

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

トピックに返信する


答えを正確にご入力ください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[flash]: OFF
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: 1万人分の身長データを小さい順に並べ替える方法

Re: 1万人分の身長データを小さい順に並べ替える方法

#4

by 小野原 » 5年前

みけCAT さんが書きました:
5年前
小野原 さんが書きました:
5年前
一万人分の身長データを小さい順に並べ替える方法がわかりません。
並べ替え自体は、今のコードの処理対象の数を変えるだけでできると思います。
結果の出力の位置も変えたほうがいいかもしれません。
すみません。もう少し具体的に教えてもらえると嬉しいです。
小野原 さんが書きました:
5年前
1万人なのでファイル処理を使います。
「ファイル処理」って、具体的にどのような処理ですか?
入力だけですか?出力もですか?
入力のみです。

ファイルのフォーマットはどのような感じですか?テキストですか?バイナリですか?
テキストです。

ファイルは自前で開きますか?それとも(リダイレクトで)シェルに任せますか?
自前です。種類はtxtです。

それに合わせてscanf、fscanf、fread、printf、fprintf、fwriteなど、
適切な関数を使って読み(書き)をするようにすればいいでしょう。
prntfとscanfしかまだ習っていません。
具体的にどの位置に加えれば良いのでしょうか?

また、配列の要素数も1万人に合わせる必要がありそうですね。

Re: 1万人分の身長データを小さい順に並べ替える方法

#3

by 小野原 » 5年前

ファイル処理は入力のみです
txt.ファイルを使います
具体的にどこを修正し
どこに新たにファイル入力のプログラミングを付け加えれば良いのかが分からないです

Re: 1万人分の身長データを小さい順に並べ替える方法

#2

by みけCAT » 5年前

小野原 さんが書きました:
5年前
一万人分の身長データを小さい順に並べ替える方法がわかりません。
並べ替え自体は、今のコードの処理対象の数を変えるだけでできると思います。
結果の出力の位置も変えたほうがいいかもしれません。
小野原 さんが書きました:
5年前
1万人なのでファイル処理を使います。
「ファイル処理」って、具体的にどのような処理ですか?
入力だけですか?出力もですか?
ファイルのフォーマットはどのような感じですか?テキストですか?バイナリですか?
ファイルは自前で開きますか?それとも(リダイレクトで)シェルに任せますか?
それに合わせてscanf、fscanf、fread、printf、fprintf、fwriteなど、
適切な関数を使って読み(書き)をするようにすればいいでしょう。
また、配列の要素数も1万人に合わせる必要がありそうですね。

1万人分の身長データを小さい順に並べ替える方法

#1

by 小野原 » 5年前

一万人分の身長データを小さい順に並べ替える方法がわかりません。
下のはデータが4つなので直接数値を入れていますが1万人なのでファイル処理を使います。
正直まったくわかりません。




コード:

#include <stdio.h>

int main(void)
{
	float	temp, h[4]={185.4,172.7,163.1,154.2};
	int	i=0, j;
	
	//データの出力
	for(i=0; i<4; i++)
	{
		printf("%6.1f", h[i]);
	}
	printf("\n");
	
	//並べ替え
	for(j=3; j>0; j--)
	{
		for(i=0; i<j; i++)
		{
			
			if(h[i]>h[i+1])
			{
				temp = h[i];
				h[i] = h[i+1];
				h[i+1] = temp;
			}
		}
		
		//結果の出力
		for(i=0; i<4; i++)
		{
			printf("%6.1f", h[i]);
		}
		printf("\n");
	}
	
	return 0;
}

ページトップ