Thì bạn chỉ việc sửa kiểu của arr[] từ long long sang float hay double là được.
Mình cũng góp ý tí là cái count của bạn hơi thừa. Vì cộng song thì kiểu gì count vẫn bằng n, thà rằng bạn cho thành sum / (float)n là được. (mà cái float(count) của bạn hơi sai sai
)
Code như này chẳng hạn.
#include <stdio.h>
#define M 500
int main() {
float arr[M] = {0.0}, sum = 0.0;
int n = 0;
do {
printf("Enter N: \n");
scanf("%d", &n);
if (n <= 1)
printf("\nN must be greater than 1\n");
} while (n <= 1);
for (int i = 0; i < n; i++) {
printf("Enter the element %d\n", i + 1);
scanf("%f", &arr[i]);
sum += arr[i];
}
printf("\nAverage of %d numbers entered: %g\n", n, sum / (float)n);
return 0;
}
Nhưng mà nếu chỉ đơn giản là tính trung bình cộng thôi thì bạn không nhất thiết phải lưu tất cả nhưng số vừa nhập vào một mảng làm gì, chỉ cần tạo một biến tạm để lưu giá trị nhập vào rồi lại ghi đè lên trong lần nhập sau là được. Thế này nè
.
#include <stdio.h>
int main() {
float sum = 0.0, temp = 0.0;
int n = 0;
do {
printf("Enter N: \n");
scanf("%d", &n);
if (n <= 1)
printf("\nN must be greater than 1\n");
} while (n <= 1);
for (int i = 0; i < n; i++) {
printf("Enter the element %d\n", i + 1);
scanf("%f", &temp);
sum += temp;
}
printf("\nAverage of %d numbers entered: %g\n", n, sum / (float)n);
return 0;
}
Trông không khác lắm nhỉ, nhưng thực ra bạn đã tiết kiệm được khá khá RAM rồi đó. 