c语言编程:N*N方阵的转置

#include<stdio.h>

int main()

{

int n,t,a[100][100],i,j; scanf("%d",&n);

for(i=0;i<n;i++)

for(j=0;j<n;j++) scanf("%d",&a[i][j]);

printf("转换后: ");

for(i=0;i<n;i++)

for(j=0;j<n;j++)

{

for(i=0;i<n;i++)

{

for(j=0;j<n;j++)

{

if(j==0)

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

}

printf(" ");

}}}

(1)c语言行列转置扩展阅读:

C语言书写规则:

1、一个说明或一个语句占一行。

2、用{} 括起来的部分,通常表示了程序的某一层次结构。{}一般与该结构语句的第一个字母对齐,并单独占一行。

3、低一层次的语句或说明可比高一层次的语句或说明缩进若干格后书写。以便看起来更加清晰,增加程序的可读性。在编程时应力求遵循这些规则,以养成良好的编程风格。

网络-c语言

㈡ C语言纠错,编写程序,实现矩阵(3行列)的转置(即行列互换)。

s定义的是long,所以返回也应该是long型,jc函数中for(i=n;i>0;i--)

㈢ C语言,使一个3*3的数组转置,即行列互换

#include<stdio.h>
intmain()
{
inta[3][3],b,c,d;
for(b=0;b<3;b++)
for(c=0;c<3;c++)
scanf("%d",&a[b][c]);
printf(" ");
for(b=0;b<3;b++)
for(c=b+1;c<3;c++)
{
d=a[b][c];
a[b][c]=a[c][b];
a[c][b]=d;
}
for(b=0;b<3;b++)
{for(c=0;c<3;c++)
printf("%d",a[b][c]);
printf(" ");
}
return0;
}

㈣ 您好~怎么样用C语言编写一个实现矩阵((3行3列)的转置,即行列互换

#include <stdio.h>
int fun(int array[3][3])
{
int i,j,temp;
for(i=0;i<3;i++)
{
for(j=i;j<3;j++)
{
temp=array[i][j];
array[i][j]=array[j][i];
array[j][i]=temp;
}
}
return 0;
}
int main()
{
int i,j;
int array[3][3]={{100,200,300}, {400,500,600}, {700,800,900}};
for (i=0;i<3;i++)
{ for (j=0;j<3;j++)
printf("%7d",array[i][j]);
printf("\n");
}
fun(array);
printf("Converted array:\n");
for (i=0;i<3;i++)
{
for (j=0;j<3;j++)
printf("%7d",array[j][i]);
printf("\n");
}
return 0;
}

㈤ 实现3行3列矩阵的转置,即行列互换。(C语言)

scanf("%d",a[i][j]);
scanf("%d",(*(a+i)+j));
这两个只需要一个,第二个是正确的,第一个错误,第一个正确形式为scanf("%d",&a[i][j]);
两个去掉一个。

㈥ c语言编程题,编写一个函数,实现n阶方阵的转置(即行列互换)急急急!!!感谢

#include <stdio.h>

#include <stdlib.h>

int main()

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

int j,i,temp;

for(i=0;i<3;i++)

for(j=0;j<3;j++)

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

for(i=1;i<2;i++)

for(j=0;j<=i;j++)

{

temp=a[i][j];

a[i][j]=a[j][i];

a[j][i]=temp;

}

for(i=0;i<3;i++)

for(j=0;j<3;j++)

{

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

if(j==2)printf(" ");

}

return 0;

}

(6)c语言行列转置扩展阅读:

需要说明的是:

1、一个C语言源程序可以由一个或多个源文件组成。

2、每个源文件可由一个或多个函数组成。

3、一个源程序不论由多少个文件组成,都有一个且只能有一个main函数,即主函数。是整个程序的入口。

4、源程序中可以有预处理命令(包括include 命令,ifdef、ifndef命令、define命令),预处理命令通常应放在源文件或源程序的最前面。

5、每一个说明,每一个语句都必须以分号结尾。但预处理命令,函数头和花括号“}”之后不能加分号。结构体、联合体、枚举型的声明的“}”后要加“ ;”。

6、标识符,关键字之间必须至少加一个空格以示间隔。若已有明显的间隔符,也可不再加空格来间隔。

网络-c语言

㈦ C语言行列按位互换

#include<stdio.h>
void main()
{
int a[2][3]={{1,2,3},{4,5,6}};
int b[3][2],i,j;
printf("array a:\n");
for(i=0;i<=1;i++)
{
for(j=0;j<=2;j++)
{
printf("%d",a[i][j]);
b[j][i]=a[i][j];
}
printf("\n");
}
printf("array b:\n");//括号内你缺少右边的引号
for(i=0;i<=2;i++)//注意i的取值
{
for(j=0;j<=1;j++)//注意j的取值,i,j的值你刚好弄反了
{
printf("%d",b[i][j]);
}
printf("\n");//你缺少这行代码,不能有效的显示
}
}
我已经调试过了,能正确运行,如果不行的话,提出你具体的问题!

㈧ c语言编程m行n列的矩阵转置

#include<stdio.h>
main()
{
inta[4][4],b[4][4];
inti,j,m,n,k;
printf("请为数组赋值: ");
for(i=0;i<4;i++)
for(j=0;j<4;j++)
scanf("%d",&a[i][j]);

/*输出a*/
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
printf("%3d",a[i][j]);
printf(" ");
}

/*把a转置以后保存到b*/
for(i=0;i<4;i++)
for(j=0;j<4;j++)
b[j][i]=a[i][j];

printf(" ");

/*输出b*/
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
printf("%3d",b[i][j]);
printf(" ");
}
}

㈨ c语言数组行列互换问题

第一位兄弟算法有问题假设a(1)(2)=5
a(2)(1)等于3,第一次运算a(1)(2)=a(2)(1)=3,但i j变成2 1时,a(2)(1)=a(1)(2)=3
然后你懂的

㈩ c语言行列转换

C语言中不接受数组作为函数的参数和返回值,所以你传递数组的做法是错误的。

但是可以传递数组的指针,例如:

voidarray(inta[][3]){...}

声明或定义时,如下语句的效果等同于上面:

voidarray(inta[3][3]){...}

但是在实际调用的时候,你必须传递指针:

array(a);

你代码中传递的参数a[3][3]实际类型是int(而且已经越界),