私はこのコードをはっきりと理解する助けが必要です。私はこのプログラムがどのくらい多くの数が応答配列で与えられたかを把握している方法を理解できません。 私はforループと特にこの行に何が起こっているのか分かりません++ frequency [responses [answer]];このCコード(アレイ)を理解する助けが必要です
#include<stdio.h>
#define RESPONSE_SIZE 40
#define FREQUENCY_SIZE 11
int main(void)
{
int answer; /* counter to loop through 40 responses */
int rating; /* counter to loop through frequencies 1-10 */
/* initialize frequency counters to 0 */
int frequency[FREQUENCY_SIZE] = {0};
/* place the survey responses in the responses array */
int responses[RESPONSE_SIZE] = {1,2,6,4,8,5,9,7,8,10,1,6,3,8,6,10,3,8,2,7,6,5,7,6,8,6,7,5,6,6,5,6,7,5,6,4,8,6,8,10};
/* for each answer, select value of an element of array responses
and use that value as subscript in array frequency to determine element to increment */
for(answer = 0 ; answer < RESPONSE_SIZE; answer++){
++frequency[responses[answer]];
}
printf("%s%17s\n", "Rating", "Frequency");
/* output the frequencies in a tabular format */
for(rating = 1; rating < FREQUENCY_SIZE; rating++){
printf("%6d%17d\n", rating, frequency[rating]);
}
return 0;
}
任意のCチュートリアルは、アレイへのアクセスを説明しなければなりません。このコードは、一方の配列の値を他方のインデックスのインデックスとして使用します。コメントでもそう言われています。 5月かそれとも意味がないかもしれません。 – Robert