首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

一个程序中的几处疑点

2012-10-29 
【求助】一个程序中的几处疑点这段程序是书上的答案为什么用Microsoft Visual Studio 2010执行(不调试)也会

【求助】一个程序中的几处疑点
这段程序是书上的答案为什么用Microsoft Visual Studio 2010执行(不调试)也会出现几处错误?这些错误该怎么解决?
/*Exercise 5.1 Summing reciprocals of five values */
#include <stdio.h>

int main(void)
{
  int i = 0;
  const int nValues = 5; /* Number of data values */
  double data[nValues]; /* Stores data values */
  double reciprocals[nValues];
  double sum = 0.0; /* Stores sum of reciprocals */

  printf("Enter five values separated by spaces:\n");
  for(;i<nValues ; i++)
  scanf("%lf", &data[i]);

  printf("\nYou entered the values:\n");
  for(;i<nValues ; i++)
  printf("%10.2lf", data[i]);
  printf("\n");

  for(;i<nValues ; i++)
  reciprocals[i] = 1.0/data[i];

  for(;i<nValues ; i++)
  {
  sum += reciprocals[i]; /* Accumulate sum of reciprocals */
  if(i>0)
  printf(" + ");
  printf("1/%.2lf", data[i]);
  }
  printf(" = %lf\n", sum);
  return 0;
}

错误1error C2057: 应输入常量表达式d:\microsoft visual studio 2010\hou\hou\min.c81Hou
错误2error C2466: 不能分配常量大小为 0 的数组d:\microsoft visual studio 2010\hou\hou\min.c81Hou
错误3error C2133: “data”: 未知的大小d:\microsoft visual studio 2010\hou\hou\min.c81Hou
错误4error C2057: 应输入常量表达式d:\microsoft visual studio 2010\hou\hou\min.c91Hou
错误5error C2466: 不能分配常量大小为 0 的数组d:\microsoft visual studio 2010\hou\hou\min.c91Hou
错误6error C2133: “reciprocals”: 未知的大小d:\microsoft visual studio 2010\hou\hou\min.c91Hou


[解决办法]
把nValues=5设置成宏定义,在每个for循环的括号内加上起始条件i=0,(不然i会依次相加,超出数组的边界)即

define nValues 5
for(i=0;i<nValues;i++)

同时删除掉const int nValues =5;

热点排行