【发布时间】:2014-03-12 01:53:51
【问题描述】:
我有两个整数,range1 和 range2,以及一个嵌套整数数组 distance[][]。
我还有两个整数数组,elasticity[] 和 resistance[],都包含一组用户确定的值。上述range1等于elasticity[]的长度,而range2等于resistance[]的长度强>。
我正在尝试将 distance[][] 中的每个位置设置为特定的“坐标”。例如,假设 range1 = 2 和 range2 = 3:
distance[0][0] = elasticity[0] * resistance[0];
distance[0][1] = elasticity[0] * resistance[1];
distance[0][2] = elasticity[0] * resistance[2];
distance[1][0] = elasticity[1] * resistance[0];
distance[1][1] = elasticity[1] * resistance[1];
distance[1][2] = elasticity[1] * resistance[2];
等等。显然我不能像上面的例子那样使用任何东西,因为 range1 和 range2 的值是用户对 elastic[] 和 resistance[] 输入的结果,因此每次程序运行时都可能不同。我尝试使用嵌套的 for 循环,如下所示:
int distance[range1][range2];
for(int i = 0; i <= range1; i++)
{
for(int j = 0; j <= range2; j++)
{
distance[i][j] = elasticity[i] * resistance[j];
}
}
据我所知,应该工作,但 Xcode 只是向我吐出运行时错误。
无论如何,我不确定我能做些什么来解决这个问题;该程序应该从用户那里获取三个值(最小 + 最大阻力值,以及弹性的增量大小),以便计算弹丸的最大距离并以表格的形式输出结果。
救命!
【问题讨论】:
-
将两个
<=更改为简单的<并且这个循环也可以工作 - 不要忘记正确初始化距离,它应该是distance[][3],而不仅仅是distance[][] -
distance的声明对于这个问题极为重要。请分享。 -
我编辑了第二个代码块以包含 distance[][] 的声明
-
@Estimack 如果您使用纯 C,则此
int distance[range1][range2];不应编译。要为二维数组分配内存,您必须使用 malloc。
标签: c arrays coordinates nested-loops multidimensional-array