要求:写一个函数,使给定的一个3*3的二维整型数组转置,即行列互换。谢谢
请教....编程
答案:3 悬赏:70 手机版
解决时间 2021-05-13 11:42
- 提问者网友:那叫心脏的地方装的都是你
- 2021-05-13 02:40
最佳答案
- 五星知识达人网友:神的生死簿
- 2021-05-13 03:41
#include<stdio.h>
void main()
{
void change(int (*p)[3],int n);
void print(int (*p)[3],int n);
int a[3][3];
int i,j;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
printf("输入的矩阵\n");
print(a,3);
change(a,3);
printf("转置的矩阵\n");
print(a,3);
}
void change(int (*p)[3],int n)
{
int i,j,t;
for(i=0;i<3;i++)
for(j=0;j<i;j++)
{
t=*(*(p+i)+j);
*(*(p+i)+j)=*(*(p+j)+i);
*(*(p+j)+i)=t;
}
}
void print(int (*p)[3],int n)
{
int i,j;
for(i=0;i<3;i++)
{
for(j=0;j<n;j++)
printf("%3d",*(*(p+i)+j));
printf("\n");
}
}
void main()
{
void change(int (*p)[3],int n);
void print(int (*p)[3],int n);
int a[3][3];
int i,j;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
printf("输入的矩阵\n");
print(a,3);
change(a,3);
printf("转置的矩阵\n");
print(a,3);
}
void change(int (*p)[3],int n)
{
int i,j,t;
for(i=0;i<3;i++)
for(j=0;j<i;j++)
{
t=*(*(p+i)+j);
*(*(p+i)+j)=*(*(p+j)+i);
*(*(p+j)+i)=t;
}
}
void print(int (*p)[3],int n)
{
int i,j;
for(i=0;i<3;i++)
{
for(j=0;j<n;j++)
printf("%3d",*(*(p+i)+j));
printf("\n");
}
}
全部回答
- 1楼网友:夜余生
- 2021-05-13 05:51
#include<stdio.h>
int array[3][3];
void convert(int array[3][3])
{int i,j,t;
for(i=0;i<3;i++)
for(j=i+1;j<3;j++)
{t=array[i][j];
array[i][j]=array[j][i];
array[j][i]=t;
}
}
main()
{
int i,j;
printf("Input array:\n");
for(i=0;i<3;i++)
for(j=0;j<3;j++)
scanf("%d",&array[i][j]);
printf("\noriginal array:\n");
for(i=0;i<3;i++)
{for(j=0;j<3;j++)
printf("%5d",array[i][j]);
printf("\n");
}
convert(array);
printf("convert array:\n");
for(i=0;i<N;i++)
{for(j=0;j<N;j++)
printf("%5d",array[i][j]);
printf("\n");
}
}
- 2楼网友:掌灯师
- 2021-05-13 05:06
void swp(int *a[][3])
{
int *tmp;
for(i=0;i<3;i++)
{ for(j=0;i<3;i++)
{tmp=a[i][j];
a[i][j]=a[j][i];
a[j][i]=tmp;
}
}}
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯