[1] 授業単元:ネットワークシステム基礎演習
[2] 問題文(含コード&リンク):(
ファイルbdata.txtには1から1000000までの異なる数が999999個入っている。つまり1から1000000までの数字のうち1つだけない。その数字を見つけなさい。
プログラムは
#include<stdio.h>
#define N 1000000
int main(void){
int min,max,mid;
int count1,count2;
int data,i;
FILE *fp
で始まり、これ以外の変数は使用してはいけない。
また、以下の方法でプログラムを書くこと。
方法)簡単のため。1から100までの数のうち、1つがない場合を例として方法を説明する。もちろん最後まで実行しないとわからないことだが、説明の都合上、存在しない数は48だとする。
(1)ファイルを先頭から最後まで読み、1〜50の数と51〜100の数の個数を数える。
(2)1〜50の数が49個しかないので、求めている数は1〜50の数のどれかである。
(3)ファイルを先頭から最後まで読み、1〜25の数と26〜50の数の個数を数える。
(4)26〜50が24個しかないので、求めている数は26〜50までの数のどれかである。
中略
(5)ファイルを先頭から最後まで読み、48〜49の数と50〜50の数の個数を数える。
(6)48〜49の数が1個しかないので、求めている数は48〜49までの数のどれかである。
(7)ファイルを先頭から最後まで読み、48〜48の数と49〜49の数の個数を数える。
(8)48〜48までの数が0個なので、求めている数は48である。
)
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限: ([2008年04月23日23:00まで]
[5] その他の制限: