我有两个整数,range1和range2,以及嵌套的整数数组距离。
我还有两个整数数组,elasticity[]和resistance[],它们都包含一组用户确定的值。前面提到的elasticity[],range1等于的长度,range2则等于range1的长度。
我要做的是将 trying 中的每个位置设置为特定的“坐标”。例如,假设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的值是用户输入elasticity[]和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只是向我吐出了运行时错误。
无论如何,我不知道我能做些什么来解决这个问题;程序应该从用户那里获得三个值(最小+最大阻力值,以及弹性的增量大小),以便计算出弹丸的最大距离,并以表格的形式输出结果。
帮助!
发布于 2014-03-12 08:33:51
首先,如果使用普通C,则需要为矩阵维度提供常量值(需要为range1和range2设置最大值,例如:
int distance[200][200];这意味着range1和range2的最大值为200。
然后,在循环条件下,需要考虑数组索引是基于0的。因此,如果数组中有4个元素,则它们的索引将为0、1、2和3。
因此,您需要像这样修改代码:
for(int i = 0; i < range1; i++)
{
for(int j = 0; j < range2; j++)
{
distance[i][j] = elasticity[i] * resistance[j];
}
}所以索引总是小于数组维度的。
我希望这能帮到你。干杯。
https://stackoverflow.com/questions/22340443
复制相似问题