关于统计学生及格成绩及平均成绩的代码问题

题目要求:本题要求编写程序,计算学生们的平均成绩,并统计及格(成绩不低于60分)的人数。题目保证输入与输出均在整型范围内。
输入在第一行中给出非负整数N,即学生人数。第二行给出N个非负整数,即这N位学生的成绩,其间以空格分隔。

我知道我做的这个方法很复杂,我只是想知道我这个代码哪里有问题?

#include
#include 
int main() {
    int N = 0, i = 0, count = 0, sum = 0;
    scanf("%d", &N);
    int* A=(int*)malloc(N*sizeof(int)); 
    for (i = 0; i < N; i++) {
        scanf("%d", &A[i]);
    }
    for (i = 0; i < N; i++) {
        if (A[i] >= 60) {
            count++;
        }
        sum += A[i];
    }
    double average = (sum*1.0) / (N*1.0);
    printf("average = %.1lf\ncount = %d", average, count);
    return 0;
}

没啥问题啊

还有这个代码也是部分正确,不知道为什么

#include<stdio.h>
int main()
{
 int N,i,count=0,m;
 double sum=0;
 scanf("%d",&N);
 for(i=1;i<=N;i++)
 {
  scanf("%d",&m);
  sum+=m;
  if(m>=60) count++;
 }
 printf("average = %.1lf\ncount = %d",sum/N,count);
 return 0;
}