//没有成功,暂时还没有找到问题所在<pre name="code" class="cpp">/**************************************************************
Problem: 1391
User: 星之河
Language: C++
Result: Presentation Error
****************************************************************/
// 9dutest.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include<stdio.h>
#include<stdlib.h>
#include<iostream>
void OutputMatrix(int data[100][100], int m, int n){
int i;
if(m<=0 || n<=0){
return;
}
if(m==1 && n==1){
printf("%d ",data[0][0]);
return;
}
if(m==1 && n>1){
for(i=0; i<n; i++){
printf("%d ", data[0][i]);
}
return;
}
if(m>1 && n ==1){
for(i=0; i<m; i++){
printf("%d ", data[i][0]);
}
return;
}
int m1,m2;
int n1,n2;
m1 = 0;
m2 = m-1;
n1 = 0;
n2 = n-1;
while(n1 <= n2 && m1 <= m2){
for(i=n1; i<=n2; i++){
printf("%d", data[m1][i]);
if(i != n2){
printf(" ");
}
}
m1++;
if(n1 <= n2 && m1 <= m2){
printf(" ");
for(i=m1; i<=m2; i++){
printf("%d", data[i][n2]);
if(i != m2){
printf(" ");
}
}
}
n2--;
if(n1 <= n2 && m1 <= m2){
printf(" ");
for(i=n2; i>=n1; i--){
printf("%d", data[m2][i]);
if(i != n1){
printf(" ");
}
}
}
m2--;
if(n1 <= n2 && m1 <= m2){
printf(" ");
for(i=m2; i>=m1; i--){
printf("%d", data[i][n1]);
if(i != m1){
printf(" ");
}
}
}
n1++;
if(n1 <= n2 && m1 <= m2){
printf(" ");
}
}
printf("\n");
}
int _tmain(int argc, _TCHAR* argv[])
{
int n;
int m;
int i;
int j;
char tmp;
int data;
int datainput[100][100];
while(scanf("%d %d", &m, &n) != EOF){
if(m<=0 || n<=0){
printf("\n");
continue;
}
for(i=0; i<m; i++){
for(j=0; j<n; j++){
scanf("%d", &datainput[i][j]);
}
}
OutputMatrix(datainput,m,n);
}
return 0;
}