繁体   English   中英

为什么我没有在此 scope 错误中声明

[英]Why am I getting not declared in this scope error

这是我必须为我的任务做的。 首先,您需要编写一个 function: int average(int *array, int nLen); 它返回 integer 值数组的平均值。 (为防止溢出,建议使用长内部变量)。 水平仪 function 将运行一个循环。 对于每次迭代,重力加速度的 Z 分量将以 50 毫秒的间隔被采样四次,并存储在适当大小的数组中。

int average (int * array, int nlen);  // assuming array is int
{
  long sum = 0L;  // sum will be larger than an item, long for safety.
  for (int i = 0; i < nlen; i++)
  {
    sum += array [i] ;
  return  ((int) sum) / nlen ;

nlen not declared in scope is the error message

这个 function 似乎存在一些问题。 首先,for 循环或 function 没有闭合花括号。 此外,如果您在定义后跟在 function 的名称和参数后面,则不需要分号。 尝试将您的 function 定义为:

int average(int *array, int nlen) {
    long sum = 0L;
    for (int i=0; i<nlen; i++) {
        sum += array[i];
    }
    return ((int) sum) / nlen;
}

但是,我还要提醒您,将sum定义为long但然后在执行除法之前将其转换回int可能会导致错误的答案,并且可能不会完全按照您的意图进行。 例如,如果sum确实会溢出int类型,那么当您将其转换回int时它将是不正确的。 如果您希望结果准确,最好将除法执行为long ,然后将结果转换为int以返回它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM