螺旋矩阵

xiaoxiao2025-03-12  8

#include <iostream> #include <cstring> using namespace std; int visitAll(int a[][100],int start,int rows,int col,int num) { int endX = rows - start -1;; int endY = col -start -1; for(int i=start; i<=endY; i++) { a[start][i] = num; num++; } if(start<endX) { for(int i=start+1; i<=endX; i++) { a[i][endY]= num; num++; } } if(start<endX && start<endY) { for(int i=endY-1; i>=start; i--) { a[endX][i]= num; num++; } } if(start+1<endX && start<endY) { for(int i=endX-1; i>start; i--) { a[i][start]= num; num++; } } return num; } void numbers(int a[][100],int rows,int col) { if(rows<=0 || col<=0)return; int start=0; int num=1; while(start*2 <rows && start*2 <col) { num = visitAll(a,start,rows,col,num); start++; } } int main() { int a[100][100]; int m,n; cin>>m>>n; numbers(a,m,n); for(int i=0; i<m; i++) { for(int j=0; j<n; j++) { cout<<a[i][j]<<' '; } cout<<endl; } return 0; }

 

转载请注明原文地址: https://www.6miu.com/read-5025738.html

最新回复(0)