追逐太阳的星星 2022-04-06 11:55 采纳率: 100%
浏览 23
已结题

用结构体解决求学生平均值问题出现C2109报错

运行结果及报错内容

表达式必须包含指向对象的指针类型,但它具有类型 "int
用的是VS2019编译器,我不理解为什么会报错呢,感觉没毛病呀


```c++
struct Student {
    char num[6];
    char name[10];
    int score;
    float average;
}stu[5];
int main() {
    int i, k;
    int j;
    float sum;
    for ( i = 0; i < 3; i++)
    {
        printf("请依次输入学生的信息:\n");
        printf("请输入学号:\n");
        scanf("%s", stu[i].num);
        printf("请输入姓名:\n");
        scanf("%s", stu[i].name);
        sum = 0;
        for ( j = 0; j < 3; j++)
        {
            printf("分数%d:\n",j+1);
            scanf("%d", &stu[i].score[j]);      //此处报错:表达式必须包含指向对象的指针类型,但它具有类型 "int
            sum += stu[i].score[j];             //此处报错:表达式必须包含指向对象的指针类型,但它具有类型 "int
        }
        stu[i].average = sum / 3;
        printf("-----------------------------\n");
    }
    for ( k = 0; k < 3; k++)              //输出三个学生的信息以及平均成绩
    {
        printf("学号:%s\n",stu[k].num);
        printf("姓名:%s\n",stu[k].name);
        printf("平均成绩:%.lf\n",stu[k].average);
    }
    return 0;
}

```

  • 写回答

1条回答 默认 最新

  • 追逐太阳的星星 2022-04-06 12:53
    关注

    数组应该对应数组,结构体内对score的定义应该改为数组
    即int score[3];

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 4月14日
  • 已采纳回答 4月6日
  • 创建了问题 4月6日