编写程序实现:用rand()函数生成两个矩阵的各个元素,
来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/28 14:22:30
编写程序实现:用rand()函数生成两个矩阵的各个元素,
(1)两个矩阵相加后,生成一个新的矩阵.
(2)两个矩阵的乘积.
void display(int T[][MAXSIZE],int row,int col)这个是什么意思呢?我是初学者,这个都写超出能力外.
#include
using namespace std;
int main()
{ int a[2][3];
int i,j;
srand(100);
for(i=0;i
(1)两个矩阵相加后,生成一个新的矩阵.
(2)两个矩阵的乘积.
void display(int T[][MAXSIZE],int row,int col)这个是什么意思呢?我是初学者,这个都写超出能力外.
#include
using namespace std;
int main()
{ int a[2][3];
int i,j;
srand(100);
for(i=0;i
(1)两个矩阵相加后,生成一个新的矩阵.#include <stdio.h>
#include <stdlib.h> //为rand()及srand()提供函数声明
#include <time.h>
#define MAXSIZE 20
void display(int T[][MAXSIZE], int row, int col)
{
//函数功能:输出矩阵信息
int i, j;
for(i = 0; i < row; i++)
{
for(j = 0; j < col; j++)
printf("%5d", T[i][j]);
printf("\n");
}
}
int main()
{
int A[MAXSIZE][MAXSIZE], B[MAXSIZE][MAXSIZE],C[MAXSIZE][MAXSIZE],
row, col;
int i, j;
/*
**提示,并接受用户输入的信息
*/
printf("现在有2个大小相同(同行同列)的矩阵\n");
printf("矩阵有多少行: ");
scanf("%d", &row);
printf("矩阵有多少列: ");
scanf("%d", &col);
/*
**为i行j列的矩阵分配i*j个0到9的随机数 , 并实现两个矩阵的加法
*/
srand(time(NULL));
printf("现在分别为2个矩阵随机分配%d个(0~9)随机数", row * col);
for(i = 0; i < row; i++)
for(j = 0; j < col; j++)
{
//生成随机数
A[i][j] = rand()/(RAND_MAX/10);
B[i][j] = rand()/(RAND_MAX/10);
//实现A+B
C[i][j] = A[i][j] + B[i][j];
}
/*
**输出矩阵的信息
*/
printf("\n矩阵A的信息: \n");
display(A, row, col);
printf("\n矩阵B的信息: \n");
display(B, row, col);
printf("\n矩阵A+B的信息: \n");
display(C, row, col);
return 0;
}
(2)两个矩阵的乘积.#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAXROW 10 + 5
#define MAXCOL 10 + 5
int main()
{
int A[MAXROW][MAXCOL], B[MAXROW][MAXCOL], C[MAXROW][MAXCOL];
int i, j, k, A_row, A_col, B_row, B_col;
srand(time(NULL));
printf("请输入第一个矩阵的行和列, 例如9行3列, 可以输入9 3: ");
scanf("%d%d", &A_row, &A_col);
printf("请输入第二个矩阵的行和列, 例如9行3列, 可以输入9 3: ");
scanf("%d%d", &B_row, &B_col);
//输入不合法, 结束程序
if(A_col != B_row)
{
printf("因为第一个矩阵的列数和第二个矩阵的行数不相等, 所以它们的乘法是未定义的.\n结束\n");
return 0;
}
//插入随机数
for(i = 0; i < A_row; i++)
for(j = 0; j < A_col; j++)
A[i][j] = rand()/(RAND_MAX/10);
for(i = 0; i < B_row; i++)
for(j = 0; j < B_col; j++)
B[i][j] = rand()/(RAND_MAX/10);
for(i = 0; i < A_row; i++)
{
for(j = 0; j < B_col; j++)
{
C[i][j] = 0;
for(k = 0; k < A_col; k++)
C[i][j] += A[i][k] * B[k][j];
}
}
printf("第一个矩阵的数据是: \n");
for(i = 0; i < A_row; i++)
{
for(j = 0; j < A_col; j++)
printf("%5d", A[i][j]);
printf("\n");
}
printf("第二个矩阵的数据是: \n");
for(i = 0; i < B_row; i++)
{
for(j = 0; j < B_col; j++)
printf("%5d", B[i][j]);
printf("\n");
}
printf("两个矩阵相乘后的数据是: \n");
for(i = 0; i < A_row; i++)
{
for(j = 0; j < B_col; j++)
printf("%5d", C[i][j]);
printf("\n");
}
return 0;
}
PS:若有不明白的地方,可以追问
再问: void display(int T[][MAXSIZE], int row, int col)这个是什么意思呢?
再答: void display(int T[][MAXSIZE], int row, int col) 这个函数是自定义函数, 函数实现的功能是将T这个二维数组中的数据输出, 其中row是行, col是列
再问: 我们是要先输出两个矩阵,然后矩阵相加相乘,这些要在一个程序中完成才行呢。
再答: 那楼主你一开始写题目要求的时候就应该写明白。。。。。。 我改一下程序, 等等私信给你, 怎么样
再问: 一开始把题复制上系统说太长,才把要求和题分开的。谢谢。
再答: 这个两个程序组合在一起的话, 对矩阵是有要求的 因为对于矩阵加法来说, 它的矩阵的格式要求是两个矩阵的行和列都要相等 对于矩阵乘法来说, 他的矩阵的格式要求是第一个矩阵的列一定要和第二个矩阵的行相等, 不然矩阵的结果是未定义的 如果要按照楼主你的要求写的话,那么矩阵只能是N行*N列的矩阵了, 即行和列是一样的 如果是这样的话,那么我就写一个给你
#include <stdlib.h> //为rand()及srand()提供函数声明
#include <time.h>
#define MAXSIZE 20
void display(int T[][MAXSIZE], int row, int col)
{
//函数功能:输出矩阵信息
int i, j;
for(i = 0; i < row; i++)
{
for(j = 0; j < col; j++)
printf("%5d", T[i][j]);
printf("\n");
}
}
int main()
{
int A[MAXSIZE][MAXSIZE], B[MAXSIZE][MAXSIZE],C[MAXSIZE][MAXSIZE],
row, col;
int i, j;
/*
**提示,并接受用户输入的信息
*/
printf("现在有2个大小相同(同行同列)的矩阵\n");
printf("矩阵有多少行: ");
scanf("%d", &row);
printf("矩阵有多少列: ");
scanf("%d", &col);
/*
**为i行j列的矩阵分配i*j个0到9的随机数 , 并实现两个矩阵的加法
*/
srand(time(NULL));
printf("现在分别为2个矩阵随机分配%d个(0~9)随机数", row * col);
for(i = 0; i < row; i++)
for(j = 0; j < col; j++)
{
//生成随机数
A[i][j] = rand()/(RAND_MAX/10);
B[i][j] = rand()/(RAND_MAX/10);
//实现A+B
C[i][j] = A[i][j] + B[i][j];
}
/*
**输出矩阵的信息
*/
printf("\n矩阵A的信息: \n");
display(A, row, col);
printf("\n矩阵B的信息: \n");
display(B, row, col);
printf("\n矩阵A+B的信息: \n");
display(C, row, col);
return 0;
}
(2)两个矩阵的乘积.#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAXROW 10 + 5
#define MAXCOL 10 + 5
int main()
{
int A[MAXROW][MAXCOL], B[MAXROW][MAXCOL], C[MAXROW][MAXCOL];
int i, j, k, A_row, A_col, B_row, B_col;
srand(time(NULL));
printf("请输入第一个矩阵的行和列, 例如9行3列, 可以输入9 3: ");
scanf("%d%d", &A_row, &A_col);
printf("请输入第二个矩阵的行和列, 例如9行3列, 可以输入9 3: ");
scanf("%d%d", &B_row, &B_col);
//输入不合法, 结束程序
if(A_col != B_row)
{
printf("因为第一个矩阵的列数和第二个矩阵的行数不相等, 所以它们的乘法是未定义的.\n结束\n");
return 0;
}
//插入随机数
for(i = 0; i < A_row; i++)
for(j = 0; j < A_col; j++)
A[i][j] = rand()/(RAND_MAX/10);
for(i = 0; i < B_row; i++)
for(j = 0; j < B_col; j++)
B[i][j] = rand()/(RAND_MAX/10);
for(i = 0; i < A_row; i++)
{
for(j = 0; j < B_col; j++)
{
C[i][j] = 0;
for(k = 0; k < A_col; k++)
C[i][j] += A[i][k] * B[k][j];
}
}
printf("第一个矩阵的数据是: \n");
for(i = 0; i < A_row; i++)
{
for(j = 0; j < A_col; j++)
printf("%5d", A[i][j]);
printf("\n");
}
printf("第二个矩阵的数据是: \n");
for(i = 0; i < B_row; i++)
{
for(j = 0; j < B_col; j++)
printf("%5d", B[i][j]);
printf("\n");
}
printf("两个矩阵相乘后的数据是: \n");
for(i = 0; i < A_row; i++)
{
for(j = 0; j < B_col; j++)
printf("%5d", C[i][j]);
printf("\n");
}
return 0;
}
PS:若有不明白的地方,可以追问
再问: void display(int T[][MAXSIZE], int row, int col)这个是什么意思呢?
再答: void display(int T[][MAXSIZE], int row, int col) 这个函数是自定义函数, 函数实现的功能是将T这个二维数组中的数据输出, 其中row是行, col是列
再问: 我们是要先输出两个矩阵,然后矩阵相加相乘,这些要在一个程序中完成才行呢。
再答: 那楼主你一开始写题目要求的时候就应该写明白。。。。。。 我改一下程序, 等等私信给你, 怎么样
再问: 一开始把题复制上系统说太长,才把要求和题分开的。谢谢。
再答: 这个两个程序组合在一起的话, 对矩阵是有要求的 因为对于矩阵加法来说, 它的矩阵的格式要求是两个矩阵的行和列都要相等 对于矩阵乘法来说, 他的矩阵的格式要求是第一个矩阵的列一定要和第二个矩阵的行相等, 不然矩阵的结果是未定义的 如果要按照楼主你的要求写的话,那么矩阵只能是N行*N列的矩阵了, 即行和列是一样的 如果是这样的话,那么我就写一个给你
编写程序实现:用rand()函数生成两个矩阵的各个元素,
两个m×n的矩阵,用C++编写程序实现矩阵的加法运算(两个矩阵中的元素一一对应)
编写程序实现,随机生成3*3矩阵(元素值在0~100之间的整数)并将矩阵转置
VB编程,有一个n × m的矩阵,其各元素的值由随机函数生成(范围50~150).编写程序,找出其中最大的元素
c语言,使用随机函数rand()编写一个猜数字的游戏程序
有一个n*m的矩阵,其各元素的值由随机函数生成(范围50~150).编写程序,找出其中最大的元素所在行和列,
编写程序,利用随机函数生成一个6 行6列的整型矩阵(数据在100~900范围内),找出某个指定行内最大元素所在的列号.
编写程序,实现两个集合的交运算(用C语言)
编写一个函数实现两个字符串的连接(不使用库函数strcat).这个用C语言怎么写程序啊求详细解释~急!
编写一个程序用单链表存储多项式,并实现两个多项式相加的函数?
编写一个程序,实现如下功能: 从键盘输入一个M*N的整数矩阵,求这个矩阵的周边元素之和
编写一个函数,用于执行两个矩阵的乘法.要求:数据输入输出在主函数中完成,用函数实现运算.