c语言随机函数生成矩阵 c语言随机数生成一个数组

最近在看c语言教材,我学着教材上的代码想实现一个随机数生成矩阵,并输出该矩阵的程序,但好像有问题。

被采纳后就不能继续回答追问了。

十多年的齐齐哈尔网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。成都营销网站建设的优势是能够根据用户设备显示端的尺寸不同,自动调整齐齐哈尔建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联从事“齐齐哈尔网站设计”,“齐齐哈尔网站推广”以来,每个客户项目都认真落实执行。

继续回答如下(程序中带//的行改过):

#include stdio.h

#include time.h

#include stdlib.h

void matrix(int *p,int n)//

{

int i,j;

srand((unsigned int)time(0));//

for(i=0;in;++i)

for(j=0;jn;++j)

*(p+i*n+j)=rand()%10;//写成p[i*n+j]=...也对

}

void pri(int *p,int n) //

{

int i,j;

printf("随机生成的矩阵为:\n");

for(i=0;in;++i)

for(j=0;jn;++j)

{ printf("%-3d ",p[i*n+j]); if(j==n-1)printf("\n");}//

}

int main()

{

int n;

printf("请输入矩阵阶数:");

scanf("%d",n);

//int a[n][n]; 只有静态数组才能这样写,动态数组要动态分配

int *a;

a = (int*)malloc(sizeof(int)*n*n);

matrix(a,n);

pri(a,n);

free(a);

return 0;

}

c语言中随机生成两个矩阵,并求两个矩阵的乘积

矩阵乘法:2*3矩阵a与3*2矩阵b相乘得到一个2*2矩阵c,其中:

其中k表示矩阵a的列数和矩阵b的行数;

故有如下代码:

#includestdio.h

int main(){

int a[2][3]={1,2,3,4,5,6};

int b[3][2]={4,2,3,0,1,7};

int c[2][2]={0};

int i,j,k;

for(k=0;k2;k++){

for(i=0;i2;i++){

for(j=0;j3;j++){

c[k][i]+=a[k][j]*b[j][i];

}

}

}

for(i=0;i2;i++){

for(j=0;j2;j++){

printf("c[%d][%d]=%d ",i,j,c[i][j]);

}

printf("\n");

}

C语言利用随机数生成两个矩阵...

%利用随机数生成两个矩阵(数据不一定相同,前者范围为30~90,后者为101~135)

r1 = ceil(30 + 30.*rand(16,1)); %30~90的16个随机数

r2 = ceil(101 + 24.*rand(16,1)); %101~135的16个随机数

A = reshape(r1,4,4); B = reshape(r2,4,4);%A,B是4行4列

%要求 1.将两个矩阵结果放入C矩阵中

C = [A B]

%2.将A矩阵转置

AT = A'

%3.求C矩阵中元素的最大值和下标

Cmn = max(C(1:end));%C中最大的数

[i1 j1] = find(C==Cmn); %C中最大的数的位置

[i1 j1] %行是位置

%4.以下三角形式显示A矩阵,上三角形式显示B矩阵

%看不懂

%5.将A矩阵第1行与第三行对应元素交换位置

Ta=A(1,:); A(1,:)=A(3,:); A(3,:)=Ta;

A

%6.求A矩阵两条对角线元素之和

Az = A(1,1) + A(2,2) + A(3,3) + A(4,4);%主对角线

Fz = A(1,4) + A(2,3) + A(3,2) + A(4,1);%副对角线

Az + Fz %对角线之和

%7.将A矩阵按列的次序把各元素放入一维数组D中,显示结果

D=reshape(A,1,4*4)

----------------------

Matlab做的

PS:作者 okhz


分享名称:c语言随机函数生成矩阵 c语言随机数生成一个数组
当前链接:http://pwwzsj.com/article/ddcgeip.html