如何用C语言表达矩阵

(同Internationalorganizations)国际组织

如何用ac语言表达一个5*6的矩阵输出? 用C语言编程输入如下矩阵,对于一个用C语言编程的问题,在主函数中任意输入一个5X6的矩阵,写一个函数求每行之和放入一个一位数组,输入矩阵和每行之和。...

特别操作说明

重印

密切注意

0喜欢549人阅读

满意的回答

pyqbl001

2014.06.29

采用率:49%年级:11

帮助了5151人

#

C语言矩阵怎么写? 方法一:直接定义一个10*10的数组,读取所有数据,然后根据选择的行数和列数打印出部分数据。

方法2:通过移动文件流指针,跳过不必要的内容。(这里,ftell和fseek函数可以用来移动指定的字节数,以控制文件流指针。)我用fscanf读取我需要的,需要跳行的时候用fgets跳过。(注意常量参数根据自己需要修改)。

注意:读取时打印输出,所以不需要变量存储。我的代码是将读取的内容存储在一个三维数组中(你没有指定文件内容,如果是简单的数字,一个二维数组就够了。我把它当作一个字符串,所以我用一个三维数组。),数组根据实际大小动态应用,写成两个独立的函数。

代码如下:

#包含stdio.h

#包含字符串. h

#包含malloc.h

#定义MAXR 10//文件中矩阵的最大行数

#定义MAXC 10//文件中矩阵的最大列

#define MS 3//矩阵中元素字符串的最大字符数(包括结束符号,不能少于实际内容)

# define buf 100//文件中一行的最大字符数可以设置得更大。

char ***getMem(int r,int c,int len);//动态申请3D数组。

void freeMem(char ***datas,int r,int c);//释放数组空间

void showDatas(char ***datas,int r,int c);//打印输出结果

int main()

{

int r=MAXR 1,c=MAXC 1,i=0,j = 0;

char ***datas=NULL,str[3],buf[MBUF];

FILE * fp = NULL

Printf("请输入要获取的行数和列数:\ n ");

while(r0 | | rMAXR | | c0 | | cMAXC)scanf(" % d % d ",r,c);

datas=getMem(r,c,MS);

fp=fopen("C:\\test.data "," r ");

如果(!fp)返回1;

while(fscanf(fp," %s ",str)!=-1)

{

if(ic) strcpy(datas[j][i],str),I;

如果(i==c)

{

如果(!fgets(buf,sizeof(buf),FP))break;

i=0,j;

}

if(j==r)破;

}

showDatas(datas,r,c);

freeMem(datas,r,c);

返回0;

}

void showDatas(char ***datas,int r,int c)

{

int i,j;

for(I = 0;IR;I,printf("\n "))

for(j = 0;JC;j)

printf("%s ",datas[I][j]);

printf(" \ n ");

}

void freeMem(char ***datas,int r,int c)

{

int i,j;

如果(!数据)

{

for(I = 0;IR;I,free(datas[i])

for(j = 0;JC;j)

free(datas[I][j]);

免费(数据);

}

}

char ***getMem(int r,int c,int len)

{

int i,j;

char ***datas=NULL,* * dr = NULL

datas =(char * * *)malloc(sizeof(char * *)* r);

如果(!datas)返回NULL

for(I = 0;IR;我)

{

dr =(char * *)malloc(sizeof(char *)* c);

如果(!dr)返回NULL

其他

{

for(j = 0;JC;j)

{

dr[j]=(char *)malloc(sizeof(char)* len);

如果(!dr[j])返回NULL

}

datas[I]= dr;

}

}

返回数据;

}

如何在C语言中输出矩阵 将二维数组定义为矩阵,然后用两个for循环打印出每个元素。

例如10×10的矩阵;

#定义m 10

#定义m 10

int a[m][n];

for(I = 0;我是m;i ){

for(j = 0;j n;j)

printf("%d ",a[I][j]);

printf(" \ n ");

}

如何用C语言写矩阵? 使用二维数组,如下所示:

#包含stdio.h

主()

{

int i,j,a[4][4];

for(I = 1;I 4;我)

{

for(j = 1;j 4;j)

{

scanf ("%d ",a[I][j]);

}

}

//这样就可以在一个二维数组中存储一个3*3的矩阵。

for(I = 1;I 4;我)

{

for(j = 1;j 4;j)

{

printf (" %-4d ",a[I][j]);

}

printf(" \ n ");

}

//这将显示矩阵。

返回0;

}

相关文章

发表新评论