求一份伪代码 N阶方阵转置 C语言 加急

作者&投稿:旗鸿 (若有异议请与网页底部的电邮联系)
用c语言编写一个程序,将一个n阶方阵转置后输出(注:只能用一个数组实现)。~

#include
void main()
{ int a[100][100],b[100][100],n,i,j;
printf("请输入n:");
scanf("%d",&n);
printf("请输入一个%d*%d的矩阵:
",n,n);
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{ scanf("%d",&a[i][j]);
b[j][i]=a[i][j];
}
printf("原矩阵为:
");
for(i=0;i<n;i++)
{ for(j=0;j<n;j++)
printf("%d",a[i][j]);
printf("
");
}
printf("转置后的矩阵为:
");
for(i=0;i<n;i++)
{ for(j=0;j<n;j++)
printf("%d",b[i][j]);
printf("
");
}
}

C语言中数组定义一般要指定的,而且变量要先定义后使用。
如果想用动态n,可以采用二级指针,动态申请内存的方式实现。
或者再简单的,你只是为了验证你的算法的话,就干脆定义一个大点的比如
int a[100][100];

#include "stdio.h"
#define N 5
void main()
{
int i,j,a[N][N],b[N][N];
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
{
scanf("%d",&a[i][j]);
}
}
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
{
b[j][i]=a[i][j];//转置
}
}
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
{
printf("%d",b[i][j]);
if(j==N-1)
printf("\n");
else
printf(" ");
}
}
}

仅供参考。

matrix [N];
for (i=0;i<N;i++)
for ( j=0 ;j<i;j++)
{ int temp =matrix [i][j];
matrix [i][j] = matrix [j][i];
matrix [j][i] = temp;
}

for(int i=0;i<N;i++)

for(int j=0;j<i;j++)
p=a(i,j);
a(i,j)=a(j,i);
a(j,i)=p;
end
end


金山屯区17361695060: 求一份伪代码 N阶方阵转置 C语言 加急 -
底亮瑞先: #include "stdio.h"#define N 5 void main() { int i,j,a[N][N],b[N][N]; for(i=0;i<N;i++) { for(j=0;j<N;j++) { scanf("%d",&a[i][j]); } } for(i=0;i<N;i++) { for(j=0;j<N;j++) { b[j][i]=a[i][j];//转置 } } for(i=0;i<N;i++) { for(j=0;j<N;j++) { printf("%d",b[i][j]); if(j==N-1) printf("\n"); else printf(" "); } } } 仅供参考.

金山屯区17361695060: n阶矩阵求转置矩阵 c语言 -
底亮瑞先: #include <stdio.h> #define MAX 100 int Array[MAX][MAX]; int n; void takePlace() {int i,j,t; for(i=0;i<n;i++)for(j=i;j<n;j++){t=Array[i][j];Array[i][j]=Array[j][i];Array[j][i]=t;} } int main() {int i,j; printf("please size of matrix:\n");scanf("%d",&n); ...

金山屯区17361695060: C 语言 写一个函数,将一个n阶方阵转置.具体要求如下 -
底亮瑞先: 分析:根据题目要求,本题的关键是实现矩阵的转置,指针变量p指向矩阵c,由数组存放规则和指针变量的规则,得到下列程序:#include#include#includeint a[5][5],c[5][5]; //矩阵a、c定义为全局变量void zc(int b[][5],int n); //函数声明语句void ...

金山屯区17361695060: n阶矩阵求转置矩阵c语言送分了<br/>用c语言实现n阶矩阵的转
底亮瑞先: #include#defineMAX100intArray[MAX][MAX];intn;voidtakePlace(){inti,j,t;for(i=0;ifor(j=i;j{t=Array[i][j];Array[i][j]=Array[j][i];Array[j][i]=t;}}intmain(){inti,j;printf("pleasesizeofmatrix: ...

金山屯区17361695060: 用c语言编写一个程序,将一个n阶方阵转置后输出(注:只能用一个数组实现). -
底亮瑞先: 经过TC2调试:#define N 5 main() { int i,j; int a[N][N],temp; printf("please input the array:"); for(i=0;i for(j=0;j scanf("%d",&a[i][j]); printf("\nyou input is:\n"); for (i=0;i{ printf("\n"); for (j=0;jprintf("%5d",a[i][j]); } for (i=0;i for (j=0;j {if(i>j) {temp=a...

金山屯区17361695060: C语言(指针): 编写一个函数实现n*n矩阵转置.在主函数中用scanf输入矩阵元素;将数组名作为函数实参. -
底亮瑞先: 好吧,简单说下:void fun( float a[][]) { int i,j,float t; for(i=0;a[i][0];i++)for(j=i;a[i][j];j++){t=a[i][j];a[i][j]=a[j][i];a[j][i]=t; } } 这个函数的局限只限于方阵.也只能对上三角元素操作,是因为a[][]数组本身空间的限制,如果采用指针的话: 令p=a;其他注...

金山屯区17361695060: c语言 m*n阶矩阵转置 -
底亮瑞先: #include<stdio.h>#define N 30 int main() { int a[N][N],b[N][N],i,j,m,n; printf("请输入数组的长宽:\n"); scanf("%d%d",&m,&n); printf("请输入数组的元素:\n"); for(i=0;i<m;i++) for(j=0;j<n;j++) { scanf("%d",&a[i][j]); b[j][i]=a[i][j]; } printf...

金山屯区17361695060: 求一段C++中能实现n阶矩阵转置的代码
底亮瑞先: #include &lt;iostream&gt; #include &lt;vector&gt; using namespace std; void input(vector&lt;vector&lt;int&gt; &gt; &amp;vv, int n); void output(vector&lt;vector&lt;int&gt; &gt; &amp;vv, int n); void transform(vector&lt;vector&lt;int&gt; &gt; &amp;vv, int n); ...

金山屯区17361695060: 求一段C++中能实现n阶矩阵转置的代码 -
底亮瑞先: #include using namespace std; void input(vector > &vv, int n); void output(vector > &vv, int n); void transform(vector > &vv, int n); void main() { int n; do { cout< cin>>n; }while(n<1); vector > vv(n, vector(n)); // input input(vv, n); // output output(vv, n); // ...

金山屯区17361695060: 用C语言实现矩阵转置 -
底亮瑞先: //Transpose #include <stdio.h> #define MAX 20 int m,n; void transpose(double a[][MAX],double b[][MAX]) {int i,j;for(i=0;i<MAX;i++)for(j=0;j<MAX;j++)b[i][j]=a[j][i]; }void main() {int i,j;double a[MAX][MAX],b[MAX][MAX];puts("Please input the...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网