提问人:Divyasri K 提问时间:7/9/2021 更新时间:7/9/2021 访问量:39
在下面的 c 代码中,错误:avg[i]=sum[i]/5 的第 19 行出现“下标值不是数组、指针或向量”
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 编程代码中,我无法找出为什么我在 avg[i]=sum[i]/5 的第 19 行收到错误“下标值不是数组、指针或向量”,请帮助并解释我如何解决这个问题
#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);
}
}
}
答:
0赞
Jing
7/9/2021
#1
我认为当您声明一个名为“avg”(第 9 行)的浮点变量时会发生这种情况,即使您有一个数组变量“avg[5]”,该变量也会从第 7 行到第 25 行生效。您可以声明一个变量“avg_pointer”而不是“avg”,并在第 9 行将其指向“avg[5]”,或者直接删除第 9 行中的“avg”,以便“avg[5]”已经在函数中生效。
评论
avg
是 (),所以没有意义。float
float mark[5],tot,avg;
avg[i]
avg
main
float avg[5];
for
float avg;