#include<stdio.h> #include<stdlib.h> int main(void) { char filename[21]; FILE *fp; struct seisekiA{ int bango, tokuten; }; struct seisekiA seiseki[100]; int n=0,m=1; int x,i,low,high; printf("ファイル名を入力してください\n"); scanf("%s",filename); if((fp=fopen(filename,"r"))==NULL) { printf("FILE OPEN ERROR\n"); exit(1); } printf("番号 得点\n"); while(fscanf(fp,"%d%d",&seiseki[n].bango,&seiseki[n].tokuten)!=EOF) { printf("%4d %4d\n",seiseki[n].bango,seiseki[n].tokuten); n++; } printf("レコード件数=%d\n",n); fclose(fp); printf("番号を入力してください\n"); scanf("%d",&x); low = 0; high = 100; i = (low+high)/2; while(low<=high && x != seiseki[i].bango) { if(x < seiseki[i].bango) high=i-1; else low=i+1; i = (low+high)/2; m++; } printf("アクセス回数=%d\n",m); if(x == seiseki[i].bango) printf("%d点です\n",seiseki[i].tokuten); else printf("見つかりませんでした"); return 0; }
学校の課題です。high = 100;
とif(x == seiseki[i].bango) /*←訂正済み*/
が間違ってると来ました。highに何を代入すればいいかわかりません。
よろしくおねがいします。
回答1件
あなたの回答
tips
プレビュー