역방향 배열의 문자열도

니키타 구 세프

짝수 문자열을 거꾸로 인쇄하지만 일반적인 방식으로 짝수 문자열이 아닌 배열을 인쇄하려고합니다. 내가 뭘 잘못 했어? 예를 들면 :

1 0 3
9 7 3
5 7 8

그리고 나는 그것을 필요로한다 :

1 0 3
3 7 9
5 7 8

하지만 나도 나선 방식으로 배열을 채우는 데 문제가 있습니다. 어레이의 중심을 어떻게 가져야합니까? 제발, 아이디어를 주시겠습니까? 어떻게해야합니까? 그리고 배열은 정사각형이어야합니다. 예를 들면 :

1 2 3
4 5 6
7 8 9

그러나 나는 그것을 필요로한다 :

3 2 9
4 1 8
5 6 7

지금까지 내 코드 :

#include <stdio.h>
#include <stdlib.h>


int main()
{
    int a[10][10],n,m,i,j;

    printf("Enter m: ");
    scanf("%d",&m);
    printf("Enter n: ");
    scanf("%d",&n);
    for(i=0;i<m;i++){
            for(j=0;j<m;j++){
                    printf("a[%d][%d]: ",i+1,j+1);
       scanf("%d",&a[i][j]);
            }
    }

// in usual order
    for(i=0;i<m;i++){
            for(j=0;j<n;j++){
            printf("%d ",a[i][j]);
                }
                printf("\n");
        }


        for(i=0;i<m;i++){
            for(j=0;j<n;j++){
            if(i%2 != 0){
            printf("%d ",a[i][j]);
            }
              else {
                    printf("%d ",a[n-i+1][j]);
                }
            }
            printf("\n");
        }

    return 0;
}
터무니없는

다음은 spiral_fill()정사각형 배열을 int중심에서 1부터 시작하여 시계 반대 방향으로 나선으로 진행하는 순차 s로 채우는 함수를 포함하는 프로그램입니다 . 이 함수는 먼저 1중앙에 a 저장 한 다음 위와 왼쪽, 아래와 오른쪽에있는 L 자형 영역을 채우고 배열이 채워질 때까지 계속 하여 배열을 채 웁니다 .

#include <stdio.h>

#define ARR_SZ  3

void spiral_fill(size_t arr_sz, int arr[arr_sz][arr_sz]);
void print_arr(size_t rows, size_t cols, int arr[rows][cols]);

int main(void)
{
    int test_arr[ARR_SZ][ARR_SZ];

    spiral_fill(ARR_SZ, test_arr);
    print_arr(ARR_SZ, ARR_SZ, test_arr);

    return 0;
}

void spiral_fill(size_t arr_sz, int arr[arr_sz][arr_sz])
{
    int center = arr_sz / 2;
    int current = center;
    int start_col, stop_col, start_row, stop_row;
    size_t layer = 0;
    int next_val = 1;

    arr[center][center] = next_val++;
    ++layer;

    while (layer < arr_sz) {
        if (layer % 2) {            // For odd layers, fill upper L
            current -= layer;

            start_col = center + layer / 2;
            stop_col = center - (layer + 1) / 2;
            for (int j = start_col; j >= stop_col; j--) {
                arr[current][j] = next_val++;
            }
            start_row = center - layer / 2;
            stop_row = center + layer / 2;
            for (int i = start_row; i <= stop_row; i++) {
                arr[i][current] = next_val++;
            }
            ++layer;
        } else {                    // For even layers, fill lower L
            current += layer;

            start_col = center - layer / 2;
            stop_col = center + layer / 2;
            for (int j = start_col; j <= stop_col; j++) {
                arr[current][j] = next_val++;
            }
            start_row = center + (layer - 1) / 2;
            stop_row = center - layer / 2;
            for (int i = start_row; i >= stop_row ; i--) {
                arr[i][current] = next_val++;
            }
            ++layer;
        }
    }
}

void print_arr(size_t rows, size_t cols, int arr[rows][cols])
{
    for (size_t i = 0; i < rows; i++) {
        for (size_t j = 0; j < cols; j++) {
            printf("%-5d ", arr[i][j]);
        }
        putchar('\n');
    }
}

다음은 3X3 어레이입니다.

3     2     9     
4     1     8     
5     6     7 

다음은 6X6 어레이입니다.

31    30    29    28    27    26    
32    13    12    11    10    25    
33    14    3     2     9     24    
34    15    4     1     8     23    
35    16    5     6     7     22    
36    17    18    19    20    21 

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

c의 루프와 배열이있는 문자열 역방향

분류에서Dev

배열에서 LinkedList의 역방향

분류에서Dev

자바 문자열 기반 역방향

분류에서Dev

배열의 순방향 및 역방향 검색 알고리즘

분류에서Dev

역방향 방법 / 배열 사용-역방향 인쇄 방법

분류에서Dev

PHP에서 역방향 정렬 배열

분류에서Dev

함수에 대한 포인터가있는 역방향 문자열, 문자열 역방향 실행

분류에서Dev

C ++의 전역 문자열 배열

분류에서Dev

Android의 문자열 영역 배열

분류에서Dev

각 문자열을 역방향으로 문장에 저장

분류에서Dev

자바 문자열 역방향 알고리즘

분류에서Dev

C ++에서 문자열의 문자에 대해 역방향 반복

분류에서Dev

지역화 된 문자열을 역방향 조회하는 방법

분류에서Dev

역방향 멀티 바이트 문자열 반복-C

분류에서Dev

하위 문자열 검색을위한 역방향 SQL 쿼리

분류에서Dev

파이썬에서 두 배열의 역방향 쌍 반복 확인

분류에서Dev

열거 형 역방향 조회

분류에서Dev

논리 연산자 AND (&)의 역방향

분류에서Dev

자바의 역방향 바이트

분류에서Dev

자바의 역방향 비트-O (n)

분류에서Dev

배열 반전 (역방향 사용 안함)-Map & Unshift-Javascript

분류에서Dev

UIButton 배열을 통해 역방향 스 와이프

분류에서Dev

역방향없이 끝에서 배열 반복

분류에서Dev

쉬운 C ++ = <string>없이 배열 길이 및 역방향

분류에서Dev

PHP 연관 배열에 대해 역방향 반복

분류에서Dev

줄리아 : 다른 문자열 배열에서 문자열 (문자열 배열)의 위치를 찾는 방법

분류에서Dev

문자열의 특수 값을 배열 문자열에 배치하는 방법

분류에서Dev

역방향 for 루프를 사용하여 C에서 문자열 끝 바꾸기

분류에서Dev

utf8 멀티 바이트 문자열을 역방향으로 반복

Related 관련 기사

  1. 1

    c의 루프와 배열이있는 문자열 역방향

  2. 2

    배열에서 LinkedList의 역방향

  3. 3

    자바 문자열 기반 역방향

  4. 4

    배열의 순방향 및 역방향 검색 알고리즘

  5. 5

    역방향 방법 / 배열 사용-역방향 인쇄 방법

  6. 6

    PHP에서 역방향 정렬 배열

  7. 7

    함수에 대한 포인터가있는 역방향 문자열, 문자열 역방향 실행

  8. 8

    C ++의 전역 문자열 배열

  9. 9

    Android의 문자열 영역 배열

  10. 10

    각 문자열을 역방향으로 문장에 저장

  11. 11

    자바 문자열 역방향 알고리즘

  12. 12

    C ++에서 문자열의 문자에 대해 역방향 반복

  13. 13

    지역화 된 문자열을 역방향 조회하는 방법

  14. 14

    역방향 멀티 바이트 문자열 반복-C

  15. 15

    하위 문자열 검색을위한 역방향 SQL 쿼리

  16. 16

    파이썬에서 두 배열의 역방향 쌍 반복 확인

  17. 17

    열거 형 역방향 조회

  18. 18

    논리 연산자 AND (&)의 역방향

  19. 19

    자바의 역방향 바이트

  20. 20

    자바의 역방향 비트-O (n)

  21. 21

    배열 반전 (역방향 사용 안함)-Map & Unshift-Javascript

  22. 22

    UIButton 배열을 통해 역방향 스 와이프

  23. 23

    역방향없이 끝에서 배열 반복

  24. 24

    쉬운 C ++ = <string>없이 배열 길이 및 역방향

  25. 25

    PHP 연관 배열에 대해 역방향 반복

  26. 26

    줄리아 : 다른 문자열 배열에서 문자열 (문자열 배열)의 위치를 찾는 방법

  27. 27

    문자열의 특수 값을 배열 문자열에 배치하는 방법

  28. 28

    역방향 for 루프를 사용하여 C에서 문자열 끝 바꾸기

  29. 29

    utf8 멀티 바이트 문자열을 역방향으로 반복

뜨겁다태그

보관