本文目录一览:
- 1、C语言 矩阵变换
- 2、将一个3×3的矩阵转置,怎样用c语言写?
- 3、c语言中二维数组如何实现矩阵转换
- 4、C语言如何实现下面数组的转换 1 2 3 4 1 11 14 16 5 6 7 8转换为 5 2 12 15 9 10 11 12 8 6 3 1 13 14
C语言 矩阵变换
二维数组的第一维(就是后面一个[])作为行,第二维(就是前面一个[])作为列,这是一种惯用理解方式。你的理解恰好把行和列反了一下。
这种理解方式也不是没有原因的,一维数组我们叫一行,可以用元素指针自增自减的方式遍历整个行,但我们不能用元素指针自增自减来遍历二维数组的整个列。
将一个3×3的矩阵转置,怎样用c语言写?
#includelt;stdio.hgt;
int main()
{
int a[3][3];int*i;
for(i=*a;ilt;*a+9;scanf(“%d”,i++));//输入矩阵
void trans(int(*p)[3]);//声明转换函数
trans(a);
}
void trans(int(*p)[3])
{
int i,j,t,*k;
for(i=0;ilt;3;i++)
for(j=0;jlt;i;j++)
{
t=*(*(p+i)+j);*(*(p+i)+j)=*(*(p+j)+i);*(*(p+j)+i)=t;//行列交换
}
for(i=0;ilt;3;i++,printf(“\n”))
for(k=*(p+i);klt;*(p+i)+3;printf(“%2d”,*k++));//输出转置矩阵
}
扩展资料:
C#中for语句的语法:
for(initialization;Boolean expression;update control variable)
statement
其中,statement(语句)是for循环主体,要么是一个语句,要么是用大括号{}封闭的代码块。[3]
例子1:
static void Main(string[]args)
{
for(int i=0;ilt;10;i++)
{
Console.WriteLine(i);
Console.ReadLine();
}
}
例子2:
static void Main(string[]args)
{
int i=0;
for(;ilt;10;i++)
{
Console.WriteLine(i);
Console.ReadLine();
}
}
例子2运算得到例子1相同的结果。
Pascal语言中的for循环
循环次数已知时,可以用for语句实现循环结构。
for语句有两种格式:递增型和递减型。
(1)递增型for语句格式
forlt;循环变量gt;:=lt;初值gt;tolt;终值gt;dolt;语句gt;;
(2)递减型for语句格式,
forlt;循环变量gt;:=lt;初值gt;downtolt;终值gt;dolt;语句gt;;
其中,“循环变量”为一个有序类型的数据,
在第一种形式中,使用的是保留字to,循环变量则从“初值”开始逐一增加到“终值”;
在第二种形式中,使用的是保留字downto,“循环变量”则从“初值”开始逐一递减到“终值”,每次执行一次循环体语句。
c语言中二维数组如何实现矩阵转换
如果数组是一个方阵,可以这样:
for(int i=0;in;i++)
for(int j=i+1;jn;j++)
{
int temp=a[i,j];
a[i,j]=a[j,i];
a[j,i]=temp;
}
如果是一个M*N的矩阵的话,就需要重新组织数组了,但是原理差不多
C语言如何实现下面数组的转换 1 2 3 4 1 11 14 16 5 6 7 8转换为 5 2 12 15 9 10 11 12 8 6 3 1 13 14
#include stdio.h
//打印方阵
int PrintMatrix(int *matrix,int n);
//转换方阵
int ConvertMatrix(int *des,int *src,int n);
int main()
{
int matrixA[4][4]=
{
{1,2,3,4},
{5,6,7,8},
{9,10,11,12},
{13,14,15,16}
};
int matrixB[4][4];
printf(“Original:\n”);
PrintMatrix((int *)matrixA,4);
printf(“After convertion:\n”);
ConvertMatrix((int *)matrixB,(int *)matrixA,4);
PrintMatrix((int *)matrixB,4);
return 0;
}
int PrintMatrix(int *matrix,int n)
{
int i,j;
if(!matrix || n1)
return 0;
for(i=0;in;++i)
{
for(j=0;jn;++j)
{
printf(“%5d”,*matrix++);
}
puts(“”);
}
return 1;
}
int ConvertMatrix(int *des,int *src,int n)
{
int i,j;
if(!des || !src || n1)
return 0;
for(i=j=0;in;j=0)
{
while(in)
*(des+n*(i++)+j++)=*src++;
i=i-j+1;
}
for(i=0,j=1;jn;i=0)
{
while(jn)
*(des+n*(i++)+j++)=*src++;
j=j-i+1;
}
return 1;
}
原创文章,作者:XSNP,如若转载,请注明出处:https://www.506064.com/n/131141.html