首页 > 解决方案 > 错误:C 中的预期表达式 - 无法将变量定义为数组的长度

问题描述

我正在学习 CS 课程,并编写了一个简单的程序来查找给定(输入)输入量的平均值。

#include <stdio.h>
#include <cs50.h>

int main(void)
{
    int n = get_int("Please enter the number of scores: ");

    int scores = [n];

    for(int i=0; i<n; i++)
    {
        int scores[i] = get_int("Please, enter the score: ");
    }
    printf("Average: %f\n", average(n, scores));
}

float average(int length, int array[])
{
    int sum = 0;

    for(int i = 0; i < length; i++)
    {
        sum += sum + array[i];

    }
    return sum / (float)length;
}

编译时,第 10 行出现“预期表达式”错误(即{int scores = [n];}——任何帮助或建议将不胜感激!!

标签: arraysccs50

解决方案


这是无效的语法:

int scores = [n];

如果要定义scores为所需大小的数组n

int scores[n];

此外,这并不符合您的预期:

int scores[i] = get_int("Please, enter the score: ");

这将创建一个名为scoressizei的数组,屏蔽之前定义的数组,并尝试使用单个值而不是值列表对其进行初始化。如果要分配给所需的现有数组:

scores[i] = get_int("Please, enter the score: ");

推荐阅读