In the below c code , Error: 'subscripted value is not an array, pointer or a vector' on line 19 for avg[i]=sum[i]/5

In the below c code , Error: 'subscripted value is not an array, pointer or a vector' on line 19 for avg[i]=sum[i]/5

所以在下面的 c 编程代码中,我无法找出为什么我在第 19 行的 avg[i]=sum[i]/5 上收到错误 'subscripted value is not an array, pointer or a vector',请帮助并解释我该怎么做解决这个

#include<stdio.h>
int main(void)//main starts 
{
  int i,j;
  float mark_tot[]={0,0,0,0,0},sum[5]={0,0,0,0,0},avg[5];
  for(i=0;i<5;i++)
  {
    char name[40];
    float mark[5],tot,avg;
    printf("Enter name : ");
    scanf("%s",name);
    for(j=0;j<5;j++)
    {
      printf("Enter %d th mark of %s ",j+1,name);
      scanf("%f",&mark[j]);
      mark_tot[i]+=mark[j];
      sum[i]+=mark[j];
    }
    avg[i]=sum[i]/5;
    printf("Your name is %s,\nYour total is %f,\nYour average is %f,\n ",name,sum[i],avg);
    for(j=0;j<5;j++)
    {
      printf("%d th mark ",j+1);
    }
  }
}

我认为当你声明一个名为“avg”的浮点变量时(第 9 行),这个变量从第 7 行到第 25 行生效,即使你有一个数组变量“avg[5]”。您可以声明一个变量“avg_pointer”而不是“avg”并将其指向第 9 行中的“avg[5]”,或者只是删除第 9 行中的“avg”以便“avg[5]”具有已经在函数中生效了。