C++ 创建一个3x3x3数组。用0到9之间的随机值填充它。输出数组。找到输出的3个最小值和3个最大值
创建一个3x3x3数组。用0到9之间的随机值填充它。输出数组。找到输出的3个最小值和3个最大值。我继续从编译器中得到错误,并说明初始化问题。我不知道为什么C++ 创建一个3x3x3数组。用0到9之间的随机值填充它。输出数组。找到输出的3个最小值和3个最大值,c++,arrays,multidimensional-array,C++,Arrays,Multidimensional Array,创建一个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;
`#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");
}
`
`include
#包括
#包括
使用名称空间std;
无效初始化(int x[3][3][3])int列;int行;int层;国际大酒店1;
无效查找(int x[3][3][3])//查找要填充的数字
int main(){
srand(时间(空));
int x[3][3][3];
int-large1,large2,large3,small1,small2,small3,行,列,层;
初始化(x[3][3][3]);
int x=RAND()%0+10;
}
无效初始化(int x[3][3][3]){
int-large1,large2,large3,small1,small2,small3;
大1=大2=大3=整数大;
对于(int r=0;r<3;r++){
对于(int c=0;c<3;c++){
对于(int l=0;l<3;l++){
如果(x[r][c][l]>large1){
大3=大2;
大2=大1;
大1=x[r][c][l];
}
}
}
}
如果没有错误信息,就很难猜测出哪里出了问题
也就是说,int x=RAND()%0+10;
像灯塔一样突出,所以我猜这是你的问题。你不能用模(或除)加0,模在加法之前。你可以用括号解决这个问题
删除代码开头和结尾的“垃圾邮件”
在void initialize(int x[3][3][3])
和int column;int row;int layer;int large1;
initialize(x[3][3][3]);
不正确,因为它的访问超出范围。请使用initialize(x);
在int x=RAND()%0+10;
中有三个错误:
x
与int x[3][3][3]冲突;
请更改其名称
RAND()
不在标准中。您的意思是RAND()
- 不要将整数除以0
INT\u LARGE
未定义。请在使用前在某处定义它
第一个问题是,initialize
的声明不是以分号结尾,而是后跟…])int column;int row;int layer;int large1;
。这不会解析
第二个问题是,int x=RAND
行完全没有意义。它重新定义了x
,并且会在initialize
之后发生。这是一个坏名字,因为它不初始化任何内容,而是对元素进行排序
此时,你真的应该回到书本上,然后回到高级任务。确保initialize
确实初始化了x
,然后将实际的排序逻辑放入find
。看起来你被要求完成一个程序,而你完全忘记了find
不要让你s猜测。包括错误消息。我怀疑在int x=RAND…
行上至少有一个,因为您已经定义了x
。错误2错误C2660:“初始化”:函数不接受1个参数错误3错误C2040:“x”:“int”与“int[3][3][3]的间接级别不同“错误4错误C3861:'RAND':找不到标识符错误5错误C2065:'large1':未声明的标识符错误6错误C2065:'large1':未声明的标识符错误7错误C2065:'row':未声明的标识符错误8错误C2065:'column':未声明的标识符错误9错误C2065:'layer':未声明的标识符10 IntelliSense:无实例”重载函数“initialize”的ce与参数列表匹配参数类型为:(int)13 IntelliSense:标识符“row”未定义14 IntelliSense:标识符“column”未定义15 IntelliSense:标识符“layer”未定义11 IntelliSense:标识符“RAND”未定义12 IntelliSense:标识符“large1”很抱歉,这是我第一次使用它。这看起来很像家庭作业,请确保您提出问题,以便从中学习。阅读变量和Java语法。