执行 c++ 二维数组

Carrying out a c++ 2d array

本文关键字:二维数组 c++ 执行      更新时间:2023-10-16

我的数组应该接受 3 个销售人员的 3 个值,存储和打印数组,但不知何故我无法让它运行。我对 c++ 2d 数组不太熟悉,所以这对我来说有点新。该代码应该接受用户输入,然后将产品的价格输出为类似表格的格式。

我必须清理大量代码才能开始编译。在许多情况下,区块的关闭}不存在。这些错误很容易犯,但如果您遵守保持一致的缩进样式,也很容易发现。

一旦我缩进了代码,错误在哪里变得相当明显,但是在原始代码中识别这些错误是非常困难的。

这是清理的代码:

#include <iostream>
#include <iomanip>
int main( ) {
const int salesPersonCount =3, productCount = 3;
int rows = 5, columns = 5;
int sales[rows][columns];
double total;
for (int p = 1; p <= salesPersonCount; p++) {
std::cout << "n n Information for SalesPsn"<< p <<" : n n";
//Sales Person
for (int m = 1; m <=productCount; m++) {
//Product Number
std::cout << "n Please enter sales value of product "<< m << ":";
std::cout << "n ";
for (int i=0;i<rows;i++) {
for (int j=3;j<columns; j++) {
std::cout << "nThe 2-D Array is:n";
for (int i=0;i<2;i++) {
for (int j=0;j<2;j++) {
std::cout << "t" << sales[i][j];
}
std::cout << "Sale " << std::setw (17) << "Salespsn1" << std::setw (22)<< "Salespsn2" 
<< std::setw (27)<< "Salespsn3" << std::setw (32) << "Total" << std::endl;
}
std::cout << std::endl;
}
}
}
}
return 0;
}

请注意,这仍然有很多你需要解决的问题,比如你如何将销售和信息捕获到变量中,pm变量也用于迭代器,以及实际上没有任何东西将数据放入sales结构中,但至少你有一些可以修复的东西。

我的建议是:当你进入一个深洞时,停止挖掘。如果不知道该怎么做,请清理代码。在更好地组织我所做的事情的过程中,我已经解决了许多问题,为应该有效但不起作用的部分添加注释。被卡住并不丢人,但如果你因为一团糟而陷入困境,你没有清理,那就是你自己。

我浏览了代码,这是最终产品...事实证明,我不需要输入,我想多了。感谢您的帮助@tadman对于任何感兴趣的人:

#include <iostream>
#include <iomanip>
#include <string>
#include <stdio.h>
#include <math.h>
#define ROW 3 //number of rows
#define COL 3 // number of columns
//Function Prototype section
void enterItems(double salesArray[][COL]);
void getRowTotal (double Sales[][3], double total[][3]);
void getColTotal (double Sales[][3], double total[][3]);
void DisplayArray (double Sales[][3], double total[][3]);
using namespace std;

int main (){ //function main begins program execution
//storing 3 sales person and 3 different product
//Declares Arrays
double Sales[ROW][COL] = { {250,200,300 }, {500,350,220 },{150,600,450 }};
double total[2][3] = {0};
//Calls Functions getRowTotal, getColTotal and DisplayArray
getRowTotal (Sales, total);
getColTotal(Sales, total);
DisplayArray (Sales, total);
//Signifies that program is successfully executed
return 0;
}

//variables
int z = 0, j = 0;

//Declares And Defines getRowTotal
void getRowTotal (double Sales[][3], double total[][3]){
for(z = 0; z < 3; z++)
total[0][z] = Sales[0][z] + Sales[1][z] + Sales[2][z];
}
//Declares and Defines getColTotal
void getColTotal(double Sales[][3], double total[][3]){
for(z = 0; z < 3; z++){
total[1][z] = Sales[z][0] + Sales[z][1] + Sales[z][2];
}
}
//function DisplayArry
void DisplayArray (double Sales[][3], double total[][3]){
//Table Headings
cout << left << setw(10) << "Title" << setw(15) << "SalesPerson1    " << setw(15) << "SalesPerson2      " << setw(15) << "SalesPerson3      " << "Total";
cout << "n_______________________________________________________________________________________________n";
cout << fixed << setprecision(2) << showpoint;
//Displays the Sales and row headings
for(z = 0; z < 3; z++){
cout << setw(8) << "Product  " << z + 1 << setw(1) << " ";
for(j = 0; j < 3; j++)
cout << setw(17) << Sales[j][z];
cout << setw(17) << total[0][z];
cout << endl;
}
cout << setw(8) << "Total";
for( z = 0; z < 3; z++)
cout << setw(19) << total[1][z];
cout << "n_______________________________________________________________________________________________n";
}