例えば、データの個数を5個に指定し、データを「5,4,2,3,1」の順で入力するときちんと「50,40,20,30,10」個の■が表示されるのですが、データの順番を「2,1,3,5,4,」の順で入力すると最初の3つが全部50個表示されてしまう、といった具合です。
もしよろしければ訂正すべきところなどアドバイスお願いします。
#include <stdio.h>
int main (int argc, const char * argv[]){
const int N = 100;
int n, i, j, max;
int data[N], graph[N];
max = 0;
printf("整数データの個数 n = ");
scanf("%d", &n);
printf("データを入力:\n");
for (i = 0; i < n; i++){
printf("data[%d] = ", i);
scanf("%d", &(data[i]));
}
for (i = 0; i < n; i++){
printf("%3d ", data[i]);
if(max < data[i]){
max = data[i];
}
graph[i] = 50 * data[i] / max;
for (j = 0; j < graph[i]; j++){
printf("■");
}
printf("\n");
}
return 0;
}