配列内のすべての数字( 'main'で提供)、特定のインデックス内(たとえば0〜11、または2〜6など)の番号を出力する関数を作成する必要がありました。その後、関数は最後のインデックス値の値を返す必要があります。例えば戻り値に何か問題がありますか?
、I入力数字2
と7
場合アレイ
{8, 3, 6, 7, 9, 5, 3, 8, 6, 7, 4, 5}
を与え、それは{6 7 9 5 3 8}
をprintfの、その後8. However it keeps returning
6`を返すべきです。
int index(int data[], int low, int high)
{
while(low <= high) {
printf("%d\n", data[low]);
low++;
}
return data[low];
}
/* I know I could just put return[high], but i though it
wouldn't matter since 'low' keeps incrementing until low == high */
int main()
{
int activities[12] = {8, 3, 6, 7, 9, 5, 3, 8, 6, 7, 4, 5};
int low, high;
int x;
printf("What is the starting day? ");
scanf("%d", &low);
printf("What is the ending day? ");
scanf("%d", &high);
x = index(activities, low, high);
printf("\n\nThe function returns this value: %d",x);
return 0;
}
少し考えてみましょう。あなたは 'low == high'までループし、ループで' data [low] 'と' low ++ 'を続けて出力します。ループが終了したときの 'low'の値は?デバッガの使い方を知っていれば、1分ごとにコードを1行ずつ進んで、質問を書くのに要した時間を短縮できます。 :) –
あなたの絶対に正しい。私はそれに気づいたはずです。私は今、恥ずかしいと感じますが、私は助けに感謝します。 –