下㇐個例子利用陣列來分析整理某項調查中所收集的資料。請看以下的問題描述。  這是㇐種典型的陣列應用(圖6.7),我們希望整理出每㇐種回應(1-10)的數量,陣列responses(#14-16)為含有40個元素的陣列,用來存放學生們的回應。  另外使用㇐個11個元素的陣列frequency(#11)來計算每種回應的次數。但是捨棄第㇐個元素(亦即frequency[0])不用,因為用frequency[1] 代表回應 1 的次數較合乎邏輯,這會允許我們直接使用每個回應當作frequency 陣列的索引。

Untitled

Untitled

#include <stdio.h>
#define RESPONSES_SIZE 40 
#define FREQUENCY_SIZE 11
 
int main(void)
{
int frequency [FREQUENCY_SIZE] = {0};
 int responses [RESPONSES_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 (size_t answer = 0; answer < RESPONSES_SIZE; ++answer) { ++frequency [responses [answer]];
}

// display results 
printf("%s%17s\\n", "Rating", "Frequency");

// output the frequencies in a tabular format
 for (size_t rating = 1; rating < FREQUENCY_SIZE; ++rating) { 
 printf("%6d%17d\\n", rating, frequency [rating]); 
 }
}