Problem

4/12

访问数组元素

Theory Click to read/hide

引用数组元素

数组的大部分用处在于它的元素可以单独访问。
这样做的方法是使用索引对元素进行编号。

记住!
C 中数组的编号从零开始。
(这是强制性的 - 您必须从头开始。记住这一点尤为重要)

访问数组 A 的示例: <前> x = (A[3] + 5)*A[1]; //读取A[3]和A[1]的值 A[0] = x + 6; // 将新值写入 A[0] 让我们分析一下处理数组元素的程序。 <前> #include ; 使用命名空间标准; 主要的() { int i=1,A[5]; A[0] = 23; //到数组的 5 个元素中的每一个(索引从 0 到 4) A[1] = 12; //写一个特定的值 A[2] = 7; A[3] = 43; A[4] = 51; A[2] = A[i] + 2*A[i-1] + A[2*i]; // 将索引为 2 的元素的值更改为表达式的结果 //因为i=1,那么将变量i的值代入我们得到的表达式 //下一个表达式 A[2] = A[i] + 2*A[0] + A[2]; 输出 << A[2]+A[4]; 执行该程序后,屏幕上将显示索引 2 等于 116 的数组元素的值。从示例中可以看出,我们可以访问数组中的任意元素大批。并且还使用各种公式计算所需的元素数量(例如,在程序 A[i-1] 或 A[2*i] 中,在这些情况下,将计算元素的索引并取决于i 的值。)

让我们看一个示例程序 <前> #include; 使用命名空间标准; 主要的() { 常量 N = 5; int A[N]; x = 1; 输出 << A[x-3]; //引用元素 A[-2] A[x+4]=A[x]+A[2*(x+1)]; //将 x 代入表达式和计算后,我们得到以下行:A[5] = A[1]+A[ 4]; ... } 因为该数组声明为有 5 个元素,这意味着元素将被编号从 0 到 4。 我们看到程序访问了不存在的元素:A[-2] 和 A[5]
原来是程序越界了

数组越界正在访问数组中不存在的索引元素。

在这种情况下,程序通常会因运行时错误
而崩溃
让我们尝试自己处理数组元素。 完成任务
 

Problem

在第 6 行到第 9 行,将索引 1 到 4 处的数组元素设置为前一个数组元素值的两倍。 
在这个任务中,你不能分配具体的数字,你必须通过名称和索引来引用数组的前一个元素
即写A[1]=46会被认为不正确