【问题标题】:print out array become garbage打印出数组变成垃圾
【发布时间】:2014-07-15 06:28:50
【问题描述】:

我有一个函数,可以在函数中对数组(aArray)中的多个元素(double)和数组(bArray)中的元素(int)进行排序。但是,当我打印出来时,结果却是垃圾。

aSize 指aArray的大小; 数组[aSize];

bSize 指 bArray 的大小; bArray[bSize];

例如 对于数组:

aArray[5] = { 2.5, 4.5, 3.5, 7.5, 5.5 }

算法后:

aArray[5] = { 2.5, 3.5, 4.5, 5.5, 7.5}

对于 b 数组:

bArray[3] = { 3, 1, 5 }

算法后:

bArray[3] = { 1, 3, 5}

在下面这段代码之后,它应该打印出 aArray[] 的位置

例如:

cArray[3] = { 2.5, 3.5, 5.5 }

这里是打印代码:

int main(){

            int bSize,tem;
            double tem1;
            cout<<endl<<endl<<"recalculation: [ ";
            for(int t=0;t<bSize;t++){
                tem=bArray[t];
                tem1=aArray[tem];
                tem1=cArray[t];

              cout<<cArray[t]<<" ";
            }
}

输出:

重新计算:[6.95324e-310 6.95322e-310 1.62597e-260]

请帮忙。谢谢

【问题讨论】:

  • 不清楚你想在那个 for 循环中做什么
  • 初始化意味着你给变量赋值。双倍温度;是一个没有初始化的变量声明。
  • 请发布实际代码,而不是近似值。

标签: c++ algorithm syntax type-conversion


【解决方案1】:

C++ 中的数组是从零开始的,访问第 5 项(因为数组中元素的索引从 0 到 4)将导致垃圾。 您还应该初始化变量 (bSize)

【讨论】:

    【解决方案2】:

    我明白了,实际上当我打印出数组 tem1 = cArray[t] 时,没有声明 cArray[t] 所以这个问题的关键实际上是

    cArray[t] = tem;

    哈哈!!

    【讨论】: