C 언어 가 나선형 매트릭스 알고리즘 문 제 를 해결 하 는 코드 예시

1975 단어 C 언어알고리즘
장 터 인터넷 학교 모집 은 나선형 출력 행렬 을 프로그램 문제 로 하고 행렬 의 나선형 출력 을 다음 과 같이 요구 합 니 다.
2016425180442470.jpg (619×409)
그림 에서 6*6 매트릭스 라인 은 출력 순서 로 표시 되 어 있 으 며,출력 이 정확 하 다 면 1~36 질서 있 는 숫자 를 출력 해 야 합 니 다.
 내 가 생각 하 는 것 은 이렇게 하 는 것 이다.

#include <stdio.h> 
 
//#define LEN 1 
//#define LEN 2 
//#define LEN 3 
#define LEN 4 
 
void printClock(int a[][LEN]){//     
  int t; 
  int i = 0, m = 0; 
  int j = LEN, n = LEN; 
  while (i <= j || m <= n) 
  { 
    for (t = i; t < j; t++)//   m  
    { 
      printf("%d ", a[m][t]); 
    } 
    m++; 
    for (t = m; t < n; t++)//   j  
    { 
      printf("%d ", a[t][j - 1]); 
    } 
    j--; 
    for (t = j - 1; t >= i; t--)//   n  
    { 
      printf("%d ", a[n - 1][t]); 
    } 
    n--; 
    for (t = n - 1; t >= m; t--)//   i  
    { 
      printf("%d ", a[t][i]); 
    } 
    i++; 
  } 
  printf("
"); } void main(){ int a[][1] = {1}; int b[][2] = {1,2, 4,3 }; int c[][3] = {1,2,3, 8,9,4, 7,6,5 }; int d[][4] = {1,2, 3, 4, 12,13,14,5, 11,16,15,6, 10, 9, 8,7 }; int e[][6] = { 1, 2, 3, 4, 5, 6, 20,21,22,23,24, 7, 19,32,33,34,25, 8, 18,31,36,35,26, 9, 17,30,29,28,27,10, 16,15,14,13,12,11 }; printClock(d); }
 각각 오른쪽으로 출력 하고 아래로 출력 하 며 왼쪽으로 출력 하고 위로 출력 한 다음 출력 이 끝 날 때 까지 순환 합 니 다.
2016425180520089.jpg (344×97)

좋은 웹페이지 즐겨찾기