//没有成功,暂时还没有找到问题所在<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; }