本篇文章给大家谈谈c语言子函数二维矩阵,以及c语言如何输入二维矩阵对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
1、试用C语言实现一个2维矩阵(float类型)2、C语言读取二维矩阵(矩阵初始化)3、大一学生的C语言问题,请大神指点:在主函数中定义一个二维数组,并输入一个矩阵在子函数里将这个矩阵转4、C语言,如何在子函数中写一个3*3二维数组,给主函数调用!!
试用C语言实现一个2维矩阵(float类型)
**B, int **C, int m, int p, int n)
{
for (int i = 0; i m; i++)
{
for (int j = 0; j p; j++)
{
C[i][j] = 0;
for (int k = 0; k n; k++)
{
C[i][j] += A[i][k] * B[k][j];
}
}
}
}
C语言读取二维矩阵(矩阵初始化)
#include stdio.h
#include malloc.h
int main() {
int i,j,n;
double **a;
char star;
char filename[] = “data.txt”;
FILE *inf = fopen(filename,”rt”);
if(inf == NULL) {
printf(“无法打开数据文件:%s\n”,filename);
return 1;
}
fscanf(inf,”%d%c%d”,n,star,n);
a = (double **)malloc(n * sizeof(double *));
for(i = 0; i n; ++i)
a[i] = (double *)malloc(n * sizeof(double));
for(i = 0; i n; ++i)
for(j = 0; j n; ++j)
fscanf(inf,”%lf”,a[i][j]);
fclose(inf);
// ……
return 0;
}
大一学生的C语言问题,请大神指点:在主函数中定义一个二维数组,并输入一个矩阵在子函数里将这个矩阵转
以一个3*3的矩阵为例说明矩阵转置
#include stdio.h
int main()
{
int a[3][3];
int temp,i,j;
//输入
printf(“请输入一个3*3的矩阵,回车键换行:\n”);
for(i=0;i3;i++)
{
for(j=0;j3;j++)
{
scanf(“%d”,a[i][j]);
}
getchar();
}
//转置
for(i=0;i3;i++)
{
for(j=i+1;j3;j++)
{
temp=a[i][j];
a[i][j]=a[j][i];
a[j][i]=temp;
}
}
//输出转置后的数组
printf(“\n转置后的矩阵为:\n”);
for(i=0;i3;i++)
{
for(j=0;j3;j++)
printf(“%d “,a[i][j]);
printf(“\n”);
}
}
运行结果:
C语言,如何在子函数中写一个3*3二维数组,给主函数调用!!
在子函数申请二维数组,主函数使用,可以用动态申请。
方法不止一种,我这里用指针的指针实现二维数组。
二维数组除了行列,本身地址也是连续的,从第一行第一列的元素地址++,可以取出所有元素。所以我这里先申请了完整的连续地址。
#includestdio.h
#includemalloc.h
int ** sr(void)
{
int i,j;
int *memory=(int *)malloc(sizeof(int)*9);//申请完整的连续内存地址3*3
int **arr=(int **)malloc(sizeof(int*)*3);//申请二维数组行指针数组(也就是二维数组)
if(!memory || !arr){
printf(“内存申请错误!\n”);return NULL;}
for(i=0,j=0;i9;i+=3)//将连续地址按列数,取出每行首地址,赋值给二维数组元素
arr[j++]=memory[i];
for(i=0;i3;i++)
for(j=0;j3;j++)
scanf(“%d”,arr[i][j]);
return arr;
}
int main(void)
{
int i,j,**arr=sr();
if(!arr)
return 1;
printf(“—主函数调用子函数定义的二维数组—\n”);
for(i=0;i3;i++,printf(“\n”))
for(j=0;j3;j++)
printf(“%d “,arr[i][j]);
printf(“\n—实现二维数组地址连续性—\n”);
int *p=arr[0][0];
while(p=arr[2][2])
printf(“%d “,*p++);
return 0;
}
关于c语言子函数二维矩阵和c语言如何输入二维矩阵的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。