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 đó.