[
板情報
|
カテゴリランキング
]
したらばTOP
■掲示板に戻る■
全部
1-100
最新50
|
メール
| |
雑談スレ。
57
:
獅子
◆Zbmx8wQyk6
:2012/07/22(日) 01:48:04 ID:iLn8rFd60
#include <stdio.h>
#include <stdlib.h>
#ifdef _DEBUG
# define _DEBUG_PRINTF( str, ... ) printf( str, __VA_ARGS__ );
#else
# define _DEBUG_PRINTF( str, ... )
#endif
int getNumberPosition( int _target, int _array[], int _size )
{
int low = 0;
int high = _size;
if( _target < _array[0] || _target > _array[_size-1] ) return 0;
while(1)
{
int number = (low+high)/2;
int select = _array[ number ];
_DEBUG_PRINTF( "number->%3d: low->%3d: high->%3d: %3d\n",number, low, high, select );
if( select == _target ){
return ++number;
}
else if( select > _target ){
high = number;
if( high-1 == low && _array[number-1] != _target ) return 0;
}
else if( select < _target ){
low = number;
if( high == low+1 && _array[number-1] != _target ) return 0;
}
}
};
void outputArray( int _array[], int _size ){
for(int i = 0; i < _size; ++i )
{
printf("%d ",_array[i]);
}
printf("\n");
};
int main(void)
{
const int numMaxData = 100;
int numData = 0;
int targetNum;
int arrayData[numMaxData];
char filename[32];
FILE* fp;
printf("Please input file name.\nFile name is ");
scanf("%s",filename);
fp = fopen( filename, "r" );
{
if( !fp )
{
printf("** error:: Don't open file!\n");
return 1;
}
while( fscanf( fp, "%d", &arrayData[numData] ) != EOF ) ++ numData;
}
fclose(fp);
for(int i = 0; i < numData-1; ++i )
{
int l=i;
for (int k=i+1;k<numData;k++)
{
if (arrayData[l]>arrayData[k]) l=k;
}
int tmp = arrayData[l];
arrayData[l] = arrayData[i];
arrayData[i] = tmp;
}
outputArray( arrayData, numData );
while( scanf( "%d", &targetNum ) )
{
int result = getNumberPosition( targetNum, arrayData, numData );
result ?
printf("%d -> №%d\n", targetNum, result ):
printf("%d is not found.\n", targetNum );
}
printf("see you again...\n");
return 0;
}
新着レスの表示
名前:
E-mail
(省略可)
:
※書き込む際の注意事項は
こちら
※画像アップローダーは
こちら
(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)
スマートフォン版
掲示板管理者へ連絡
無料レンタル掲示板