3*3的矩阵转置用指针和scanf怎么写啊?

如题所述

指针
#include <stdio.h>
#define N 3
void change(int *p)
{
int i,j,temp;
for(i=0;i<N-1;i++)
for(j=i+1;j<N;j++)
{temp=*(p+i*N+j);*(p+i*N+j)=*(p+j*N+i);*(p+j*N+i)=temp;}
}
int main(int argc, char *argv[])
{
int s[N][N],*p;
int i,j;
p=*s;
for(i=0;i<N;i++)
for(j=0;j<N;j++)
scanf("%d",p+i*N+j);

printf("未转置矩阵\n");
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
printf("%d ",*(p+i*N+j));
putchar(10);//换行
}
p=*s;
change(p);
printf("转置后矩阵\n");
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
printf("%d ",*(p+i*N+j));
putchar(10);//换行
}
return 0;
}

scanf
#include <stdio.h>

int main(void)
{
int num[3][3];
int count, count_out;

for (count_out = 0; count_out < 3; count_out++)
{
for (count = 0; count < 3; count++)
scanf("%d", &num[count_out][count]);
getchar();
}

printf("\n\n");

for (count_out = 0; count_out < 3; count_out++)
{
for (count = 0; count < 3; count++)
printf("%d ", num[count][count_out]);
printf("\n");
}

return 0;
}
温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答