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]”具有已经在函数中生效了。
所以在下面的 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]”具有已经在函数中生效了。