#include
#include
void printMatrix(int **matrix,int columns,int rows,int start)
{
int x=columns-start-1;
int y=rows-start-1;
int i;
for(i=start;i<=x;i++)//先打印一行
printf("%d ",matrix[start][i]);
if(start
{
for(i=start+1;i<=y;i++)
printf("%d ",matrix[i][x]);
}
if(x>start&&y>start)//从右到左打印
{
for(i=x-1;i>=start;i--)
printf("%d ",matrix[y][i]);
}
if(x>start&&y>start+1)//从下到上打印
{
for(i=y-1;i>=start+1;i--)
printf("%d ",matrix[i][start]);
}
}
void matrixClock(int **matrix,int columns,int rows)
{
if(matrix==NULL||columns<=0||rows<=0)
return;
int start=0;
while(columns>start*2&&rows>start*2)
{
printMatrix(matrix,columns,rows,start);
start++;
}
}
int main()
{
int n,m;
while(scanf("%d %d",&n,&m)!=NULL)
{
int **numbers;
int i,j;
numbers=(int **)malloc(sizeof(int *)*n);//n rows
for(i=0;i
numbers[i]=(int *)malloc(sizeof(int)*m);//m columns
for(i=0;i
for(j=0;j
scanf("%d",&numbers[i][j]);
matrixClock(numbers,m,n);
}
return 0;
}
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。