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://azwzsj.com/article/ddcgeip.html