易语言数组累加计算 javascript日常编程中如何正确使用循环语句?
javascript日常编程中如何正确使用循环语句?
javascript的循环方法有很多,但是每种循环方法都有自己的使用场景,所以要适当使用。
循环
for循环一般用于遍历一个简单的数组,然后使用数组的值执行一系列操作。for循环可以通过
中断以终止此循环。
在…里...循环
循环主要用于遍历对象(当然数组也可以)。如果操纵loop的值,会改变原来的数组,需要注意。
forEach循环主要用于遍历数组对象,在不改变原数组值的情况下对每一项进行操作,但ForEach循环不能通过break终止循环。它也没有办法停止循环。方法通常不返回值,只用于操作数据。
map方法依次对数组的所有成员调用一个函数,根据函数的结果返回一个新的数组。如果需要返回值,通常使用方法。
方法的参数是一个函数,所有数组成员依次执行函数,返回结果的成员组成一个新的数组返回。此方法不会更改原始数组。
(),每隔()
它们接受一个函数作为参数,所有数组成员依次执行该函数,返回一个布尔值。有的方法,只要一个数组成员返回真,最后返回真,每个方法都要求每个数组成员的返回值都是真的,这个方法的返回值也是真的。
(),reduc
三阶矩阵乘三阶矩阵的例题?
:的例子
输入矩阵的行和列,分别输入两个矩阵,输出矩阵相乘的结果。
#includebits/stdc。h
使用命名空间std
int main(){
int a,b,c;
Cout,请输入两个矩阵的行和列,:e ndl;
cinabc//分别输入第一个矩阵的行,第二个矩阵的列,第二个矩阵的列。
int X[a][b],Y[b][c],Z[a][c];//打开三个二维数组存储矩阵,注意乘法结果的行列值。
Cout请输入第一个矩阵:e ndl;
for(int i0;ia;I)矩阵{//的行
for(int j0;JB;J ){ //矩阵的列
cinX[I][j];
}
}
Cout请输入第二矩阵:e ndl;
for(int i0;IB;I)矩阵{//的行
for(int j0;JC;J ){ //矩矩阵的列
cinY[I][j];
}
}
memset(Z,0,sizeof(Z));//将二维数组z初始化为0。
//int temp 0;
cout矩阵相乘的结果是:endl;
for(int i0;ia;i ){
for(int j0;JC;j ){
for(int k0;kb;k ){
Z[I][j]Z[I][j]X[I][k]* Y[k][j];//行和列的乘积和就是对应的结果值。
//temptemp X[I][k]* Y[k][j];
}
coutZ[I][j];//计算一后输出。
//cout temp;
//temp 0;
}
coutendl//计算完一列后输出换行符。
}
返回0;
}
//这个程序也可以直接将结果累加到temp中输出,而不需要开发二维数组矩阵来存储结果。
//输出后将temp中的值重置为0。
一个
2
三
四
五
六
七
八
九
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
四十二个
43
一个
2
三
四
五
六
七
八
九
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
四十二个
43
请注意memset函数:
Memset函数用于初始化指定的内存空间。
memset(Z,0,sizeof(Z));//将二维数组z初始化为0。
int float long string sizeof函数返回数组元素空间中4的倍数(一个元素占用4个字节)。
char sizeof函数返回数组元素的空间大小(一个元素占1个字节)。
double sizeof函数返回数组元素空间中8的倍数(一个元素占8个字节)。
拿出矩阵乘法的方法体
#includebits/stdc。h
使用命名空间std
Intjzcheng (int * q,int * w,int h,int l,int k)//定义两个指针,指向二维数组变成一维数组后的第一个地址。
{
int Z[h][k];//h*k
//内存集(Z,0,sizeof(Z));//将二维数组z初始化为0。
//int temp 0;
//cout矩阵相乘//的结果是:endl;
//cout
;
for(int I 0;I h;我)
{
for(int j 0;j k;j)
{
z[I][j]0;
for(int n 0;n l;n)
{
Z[I][j]Z[I][j]q[I * l n]* w[n * k j];//行和列的乘积和就是对应的结果值。仔细想想为什么会这样,把它当成一维数组。
//temptemp X[I][k]* Y[k][j];
}
cout Z[I][j];//计算一后输出。
//cout temp;
//temp 0;
}
标准输出
;
}
}
int main()
{
int a,b,c;
Cout,请进入两个矩阵的行列,: ENDL;
公元前200年的CIN;//分别输入第一个矩阵的行,第二个矩阵的列,第二个矩阵的列。
int X[a][b],Y[b][c];//打开三个二维数组存储矩阵,注意乘法结果的行列值。
Cout,请输入第一个矩阵: ENDL;
for(int I 0;我a;I) //矩阵的行
{
for(int j 0;j b;J) //矩阵的列
{
CIN X[I][j];
}
}
Cout,请输入第二矩阵: ENDL;
for(int I 0;I b;I) //矩阵的行
{
for(int j 0;j c;J) //矩阵的列
{
CIN Y[I][j];
}
}
jzcheng(*X,*Y,a,b,c);
//也可以写成jzcheng(X[0],Y[0],a,b,c);两者都表示一维数组,元素以[0][0]开头;可以用作指针
返回0;
}
//这个程序也可以直接将结果累加到temp中输出,而不需要开发二维数组矩阵来存储结果。
//输出后将temp中的值重置为0。
一个
2
三
四
五
六
七
八
九
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
3233
34
35
36
37
38
39
40
41
四十二个
43
四十四
45
46
47
48
四十九个
50
51
五十二个
53
54
55
五十六岁
57
一个
2
三
四
五
六
七
八
九
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
四十二个
43
四十四
45
46
47
48
四十九个
50
51
五十二个
53
54
55
五十六岁
57
用向量定义二维数组,避免指针情况。
#includebits/stdc。h
使用命名空间std
int jzcheng(矢量向量X,矢量向量Y,int h,int l,int k)
{
int Z[h][k];//h*k
memset(Z,0,sizeof(Z));//将二维数组z初始化为0。
//int temp 0;
cout矩阵相乘的结果是:endl;
//cout
;
for(int I 0;I h;我)
{
for(int j 0;j k;j)
{
//Z[I][j]0;
for(int n 0;n l;n)
{
Z[I][j]Z[I][j]X[I][n]* Y[n][j];//行和列的乘积和就是对应的结果值。
//temptemp X[I][k]* Y[k][j];
}
cout Z[I][j];//计算一后输出。
//cout temp;
//temp 0;
}
标准输出
;
}
}
int main()
{
int a,b,c;
Cout,请进入两个矩阵的行列,: ENDL;
公元前200年的CIN;//分别输入第一个矩阵的行,第二个矩阵的列,第二个矩阵的列。
向量向量X;
向量向量Y;
(一);
for(int i0;();i ){
X[i]。调整大小(b);
}
(b)和:
for(int i0;();i ){
Y[i]。调整大小(c);
}//打开三个二维数组存储矩阵,注意乘法结果的行列值。
标准输出请输入第一个矩阵: ENDL;
for(int I 0;我a;I) //矩阵的行
{
for(int j 0;j b;J) //矩阵的列
{
CIN X[I][j];
}
}
Cout,请输入第二矩阵: ENDL;
for(int I 0;I b;I) //矩阵的行
{
for(int j 0;j c;J) //矩阵的列
{
CIN Y[I][j];
}
}
jzcheng(X,Y,a,b,c);
返回0;
}
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。