起動はできているのですが、あてはまりません。 どこかおかしな点はありますか? 教えてください。 #include <stdio.h> #define MAX 10 int search(int target); struct student{ int num; //学生番号 char name[10];//名前 }; struct student St[MAX]={{8,"Hanada"}, {5,"Goto"}, {24,"Nishida"}, {10,"Toh"}, {3,"Sasaki"}}; int main(){ int i; int tgt_key; while(1){ printf("Please input a key:"); if(scanf("%d", &tgt_key)==EOF) break; if((i=search(tgt_key))!=-1) printf("Found! Num=%d, Name=%s\n", St[i].num, St[i].name); else printf("Not found.\n"); } } int search(int target){ int hi, lo, mid; lo=0; hi=MAX-1; while(lo <= hi){ mid = (lo+hi)/2; if(target==St[mid].num) return mid; else if(target<St[mid].num) hi = mid-1; else lo = mid+1; } return -1; }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/10/22 10:03