c++ - 二维数组 C++ 错误

标签 c++ arrays multidimensional-array

我的程序的目标是将文件中的数据加载到销售数组中,然后在移动到下一个城市之前显示每个城市每天的销售额。我在将二维 SalesArray 传递给我的其他函数时遇到问题。我很确定这是因为我在 global 和 main 中声明它的方式。我在组织它时也遇到了问题,因此它会相应地显示每个城市和日期。

任何帮助都会很棒。谢谢

#include <iostream>
#include <iomanip> 
#include <string>
#include <fstream>
#include <time.h> 

using namespace std;

double SalesArray;
void GetSales();
void DisplaySales(double SalesArray[5][4]);


int main(){

   DisplayHeading();
   GetSales();
   DisplaySales(double(SalesArray)[5][4]) ;

   cout << endl;
   system("pause");
   return 0;

}


void GetSales(){

   double SalesArray[5][4]; 
   ifstream indata;
   indata.open("sales.txt");

   for (int row = 0; row < 5; row++){
        for (int col = 0; col < 4; col++){
            indata >> SalesArray[row][col] ;    
        }
   }


   //Close the File
   //indata.close();

   //cout << endl;

}

void DisplaySales(double SalesArray[5][4]){

    for (int row = 0; row < 5; row++){
        for (int col = 0; col < 4; col++){
            cout << fixed << setprecision(2) << SalesArray[row][col] << endl;
        }
    }


    // Array for City
    const int SIZE = 5;
    string city[SIZE] = {"New York" , "LA" , 
                 "Chicago" , "Springfield" ,
                 "Prophetstown" };

    for (int count = 0; count < SIZE; count ++){
         cout << city[count] << endl;
    }

    // Array for Days

    const int SALES = 4;
    string days[SALES] = {"Friday" , "Saturday" , 
                 "Sunday" , "Monday"
                 };

    for (int count = 0; count < SALES;  count ++){
        cout << days[count] << endl;
    }
}

最佳答案

是的,在 GetSales(); 中删除 SalesArray 的本地声明更好,使它成为一个参数并像 DisplaySales()< 一样传递它.

此外,您应该传入所有 SalesArray,而不是 [5][4] 处的元素。

     DisplaySales( SalesArray );

注意... [5][4] 处的元素超出了数组的末尾。在 C 中,您声明大小 N,但仅索引到 N-1

关于c++ - 二维数组 C++ 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20483783/

相关文章:

c++ - 在任何类类型的模板方法中使用 new

c - 使用指针比使用 C 中的数组语法快得多,这仍然是真的吗?

c++ - 如何在二维数组中绘制 X? C++

php - 在 php 中获取给定月份和年份的按周分隔的日期数组

javascript - 根据输入将字符串分解为多个对象

c++ - 如何使用 std::vector 初始化 boost::random::discrete_distribution?

c++ - 检查二进制数在特定位置是否有 '0' 或 '1'

c++ - VS2012 C++ 的 Delaunay 三角剖分?

java - 二维数组作为方法的参数?

php - 递归获取数组的键并创建下划线分隔的字符串