C言語の線型散策(逐次散策)の質問です。
以下の演習がうまく行きません。
ご教授ください。
【要素数nの配列v内のkeyと等しい全要素の添字を配列idxに格納する関数search_idxを作成、返却するのはkeyと等しい要素の個数、例:vに受け取った配列の要素が{1,7,5,7,2,4,7}でkeyが7であればidxに{1,3,6}を格納したうえで3を返却する】
#define NUM 5 #define FAILED -1 int serch_idx(int v[],int idx[],int key,int n) { int i; int cnt =0; v[n] = key; for (i = 0; i< n; i++) { if(v[i] == key){ idx[cnt] = i; cnt++; } for (i = 0; i < cnt; i++) { printf("idx[%d] = %d\n",i,idx[cnt]); } return (i < n) ? cnt : FAILED; } int main(int argc, char const *argv[]) { int i,x,key; int v[NUM]; int idx[NUM]; for (i = 0; i < NUM; i++) { printf("v[%d] =",i );scanf("%d",&v[i] ); } printf("key = ");scanf("%d",&key); x = serch_idx(v,idx,key,NUM); if(x == FAILED) printf("検索に失敗しました"); else printf("%dが%d個見つかりました。",key,x); return 0; } 結果 v[0] =1 v[1] =2 v[2] =1 v[3] =1 v[4] =3 key = 1 idx[0] = 0 idx[1] = 0 idx[2] = 0 1が3個見つかりました。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。