#include<stdio.h>
#define N 10
int main()
{
int n,q=1,p,v;
int count1 = 0;
scanf_s("%d", &n);
int a[N][N] = {0};
printf("The original matrix is:\n");
for(int i=0;i<n;i++)
for(int p=0;p<n;p++)
{
a[i][p] = q;//赋值
q++;
printf("%3d", a[i][p]);
count1++;
if (count1 == n)//count1计数判断是否换行
{
count1 = 0;
printf("\n");
}
}
//通过观察数组变化规律可以看出
//转置后矩阵主对角线上的数组元素n[0][0]、n[1][1]、n[2][2]的值并没有发生变化,
//只是位于对角线右上方的三个元素与位于对角线左下方的三个元素的值进行了交换。
[C语言学习:C语言实现矩阵转置](https://baijiahao.baidu.com/s?id=1599629014273033869&wfr=spider&for=pc)
for (int i = 0; i < n; i++)
{
for (v = 0; v < n; v++)
{
if (v > i)
{
int temp = 0;
temp = a[i][v];
a[i][v] = a[v][i];
a[v][i] = temp;
}
}
}
printf("The changed matrix is:\n");
for (int i = 0; i < n; i++)
{
for ( v=0; v < n; v++)
{
printf("%3d", a[i][v]);
count1++;
if (count1 == n)
{
count1 = 0;
printf("\n");
}
}
}
return 0;
}
第九周练兵区编程题
最新推荐文章于 2020-04-26 20:50:28 发布