[C 기초] 2차원 배열 복습

zzzzsb·2021년 1월 29일
0

C 기초 복습

목록 보기
7/8

C 프로그래밍 기초 - 2차원 배열


예제 복습하기

42. 2차원 배열 출력 1

#include <stdio.h>

int main(){
    int i,j;
    int n,k=1;
    int arr[10][10];
    scanf("%d", &n);

    for(i=0;i<n;i++){
        for(j=n-1;j>=0;j--){
            arr[j][i]=k;
            k++;
        }
    }
    for(i=0;i<n;i++){
        for(j=0;j<n;j++){
            printf("%3d", arr[i][j]);
        }
        printf("\n");
    }
    return 0;
}

43. 2차원 배열 출력 2

#include <stdio.h>

int main(){
    int i,j;
    int n,k=1;
    // 배열 요소 0으로 초기화
    int arr[10][10]={0,};
    scanf("%d", &n);

    for(i=0;i<n;i++){
        for(j=i;j>=0;j--){
            arr[i][j]=k;
            k++;
        }
    }
    for(i=0;i<n;i++){
        for(j=0;j<n;j++){
            printf("%3d", arr[i][j]);
        }
        printf("\n");
    }
    return 0;
}

44. 2차원 배열 출력 3

#include <stdio.h>

int main(){
    int i,j;
    int n,k=1;
    int arr[10][10]={0,};
    scanf("%d", &n);

    for(i=0;i<n;i++){
        for(j=0;j<n;j++){
            if(i==j || i+j==n-1){
                arr[i][j]=k;
                k++;
            }
        }
    }
    for(i=0;i<n;i++){
        for(j=0;j<n;j++){
            printf("%3d", arr[i][j]);
        }
        printf("\n");
    }
    return 0;
}

45. 방배정 1

#include <stdio.h>
#include <math.h>

int main(){
    int i,j;
    int num, maxNum;
    int s,y;
    int arr[2][7]={0, };
    int sum=0;

    scanf("%d %d",&num,&maxNum);
    for(i=1;i<=num;i++){
        scanf("%d %d", &s,&y);   
        arr[s][y]++;
    }

    for(i=0;i<2;i++){
        for(j=1;j<7;j++){
            sum=sum+ceil(arr[i][j]/(double)maxNum);
        }
    }
    printf("%d\n",(int)sum);

    return 0;
}

46. 방배정 2

#include <stdio.h>
#include <math.h>

int main(){
    int i,j;
    int num, maxNum;
    int s,y;
    int arr[2][7]={0, };
    int sum,tmp=0;

    scanf("%d %d",&num,&maxNum);
    for(i=1;i<=num;i++){
        scanf("%d %d", &s,&y);   
        arr[s][y]++;
    }

    for(i=0;i<2;i++){
        for(j=1;j<=2;j++){
            tmp+=arr[i][j];
        }
    }
    sum+=ceil(tmp/(double)maxNum);

    for(i=0;i<2;i++){
        for(j=3;j<=5;j=j+2){
            tmp=0;
            tmp+=arr[i][j];
            tmp+=arr[i][j+1];
            sum+=ceil(tmp/(double)maxNum);
        }
    }
    printf("%d\n",(int)sum);

    return 0;
}

profile
성장하는 developer

0개의 댓글