ソフトウェア会社の研修時代に作成したプログラムです。
参考になればうれしいです。
今回の研修プログラム集ではリニアサーチ(線形探索法)のアルゴリズムを使用しています。
「先頭から順番に検索していく」という動きで初心者にもイメージしやすいものです。
リニアサーチの特徴はこんな感じです。
・先頭から順番に検索していく探索アルゴリズム
・単純で分かりやすい。
・探索効率はあまり良くない。
サンプルでは100名のテストデータを例にしています。
Sample Code
/*****************************************************************************
【リニアサーチ】
100名のテストの点数が配列test[]に降順で格納されている。
点数を入力して順位を検索して表示するプログラム。
<lesson_008.c> ver1.00
------------------------------------------------------------------------------
作成日:
作成者:
*****************************************************************************/
//---ヘッダーファイル---
#include <stdio.h>
//---マクロ宣言---
#define PEOPLE_NUM 100
/****************************************************************************
---main---
*****************************************************************************/
int main(void)
{
int i;
int targetScore; //検索する点数
int endFlag = 0; //ループの終了条件の変数
int test[PEOPLE_NUM]; //点数を格納する配列
//配列test[]に点数を降順に格納する。(100~1)
for(i = 0; i < PEOPLE_NUM; i++)
{
test[i] = 100 - i;
}
//テストの点数を入力
printf("点数を入力してください。\n");
scanf("%d", &targetScore);
for(i = 0; i < PEOPLE_NUM; i++) //0~99まで100回ループ
{
if(test[i] == targetScore) //検索する点数を見つけたら
{
//iは0から始まるので1を足す(0→1位)
printf("%d点の人は%3d位です。\n", targetScore, i + 1);
endFlag = 1; //フラグを立てる
break;
}
}
if(endFlag == 0) //フラグが立っていない=検索に一致する点数なし
{
printf("該当する点数はありません。\n");
return -1; //エラーの場合はー1を返す。(ここでmain関数終了)
}
return 0;
}
実行例
その他:研修で作成したC言語プログラム
その他のC言語プログラムはこの投稿にまとめてあります!
C言語の初心者用コードなので是非活用して下さい。
【C言語】研修 サンプルプログラム集
コメント