创建一个3x3x3阵列.用0到9之间的随机值填充.输出数组.找出3个最小值和3个最大值的输出



创建一个3x3x3数组。用0到9之间的随机值填充。输出数组。找出3个最小值和3个最大值的输出。我不断地从编译器中得到错误,同时它说明了我的初始化问题。我不知道为什么。

`#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
void initialize(int x[3][3][3]) int column; int row; int layer; int large1;
void find(int x[3][3][3]);              //to find number to fill

int main(){
    srand(time(NULL));
    int x[3][3][3];
    int large1, large2, large3, small1, small2, small3, row, column, layer;
    initialize(x[3][3][3]);
    int x = RAND() % 0 + 10;
}
void initialize(int x[3][3][3]){
    int large1, large2, large3, small1, small2, small3;
    large1 = large2 = large3 = INT_LARGE;
    for (int r = 0; r < 3; r++){
        for (int c = 0; c < 3; c++){
            for (int l = 0; l < 3; l++){
                if (x[r][c][l]>large1){
                    large3 = large2;
                    large2 = large1;
                    large1 = x[r][c][l];
                }
            }
        }
    }
    cout << large1 << large2 << large3 << endl;
    system("pause");
}
`
  • 删除代码开头和末尾的垃圾邮件
  • void initialize(int x[3][3][3])int column; int row; int layer; int large1;之间添加分号
  • initialize(x[3][3][3]);坏,因为它的访问超出范围。使用initialize(x);
  • 在CCD_ 5中存在三个错误:
    • xint x[3][3][3];冲突请更改其名称
    • RAND()不在标准中。你是说rand()
    • 不要将整数除以0
  • 未定义INT_LARGE。请在使用前在某个地方定义它

如果没有错误消息,很难猜测出了什么问题。

也就是说,int x = RAND() % 0 + 10;像灯塔一样引人注目,所以我猜这是你的问题。不能使用模数(或除以(0,并且模数在加法之前。您可以使用括号

来修复此问题

第一个问题是initialize的声明不是以分号结尾,而是后面跟着... ]) int column; int row; int layer; int large1;。这无法解析。

第二个问题是int x = RAND线完全没有意义。它重新定义了x,并将在initialize之后发生。这是一个坏名字,因为它不初始化任何东西,而是对元素进行排序。

在这一点上,你真的应该回到你的书上,然后回到高级任务上。确保initialize实际初始化了x,然后将实际的排序逻辑放在find中。看起来你被要求完成一个程序,而你完全忘记了find

相关内容

  • 没有找到相关文章

最新更新