#include<stdio.h>
#include<stdlib.h> //防止运行结果闪退
void main ()
{
int a[4][4],b[4][4],i,j;
printf("input 16 numbers:\n"); //输出这行字,达到提示效果
for(i=0;i<4;i++) //这两个循环是进行了逆时针的旋转 和转置不一样 还有对角线互换的情况
{
for(j=0;j<4;j++)
{
scanf("%d",&a[i][j]);
b[3-j][i]=a[i][j];
}
}
printf("shuzu a:\n"); //这里是没有定义数组的情况下输入了一串空格分开的数字 要将未旋转之前的数组呈现出来 便于与旋转之后的进行观察
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
{
printf("%4d",a[i][j]);
}
printf("\n"); //是一行行进行的输出 所以要换行
}
printf("逆时针旋转的矩阵为: \n");
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
{
printf("%-4d",b[i][j]); //%4d就是间隔左边4个位 如果是%-4d就是间隔右边4个位
}printf("\n");
}
system("pause"); //防止运行结果闪退
//getchar(); //防止运行结果闪退
return 0;
}
出现问题是运行结果闪退
还有就是最开始只有前两行逆时针旋转了
同样是找不到问题 但是删掉重写就行了