donchanee

배열 문제 #3 본문

프로그래밍/C언어

배열 문제 #3

donchanee 2018. 5. 18. 17:28
728x90


# 풀이


 

#include <stdio.h>


int main(void){

    

    int x[6]={0}, i, N, coef, exp;

    

    scanf("%d", &N);

    for(i=0;i<N;i++) {

        scanf("%d %d", &coef, &exp);

        x[exp]=coef;

    }

    

    for(i=5;i>=0;i--) {

        if (x[i]!=0)

            printf("( %d %d )", x[i], i);

    }

    

    return 0;

}


x의 배열을 지수로 놓고, 숫자 2개를 입력받은뒤 지수숫자는 배열의 숫자로 대입하고, 계수숫자는 배열의 값으로 저장한다.


그 후, 배열을 양식에 맞게 출력하면 결과값이 나온다.



이에 추가되는 문제로 5-2번 문제가 있다. 이 문제는 5-1번 문제를 2번 입력받아서 겹치는 부분은 더하여 출력하고 겹치지 않는 부분은 출력하는


말하자면 함수의 합을 출력하는 문제이다. 이에 대한 풀이는 아래와 같다.


#include <stdio.h>


int main(void){

    

    int x[6]={0}, y[6]={0}, i, N, coef, exp;

    

    scanf("%d", &N);

    for(i=0;i<N;i++) {

        scanf("%d %d", &coef, &exp);

        x[exp]=coef;

    }

    scanf("%d", &N);

    for(i=0;i<N;i++) {

        scanf("%d %d", &coef, &exp);

        y[exp]=coef;

    }

    

    for(i=5;i>=0;i--) {

        if( x[i] !=0 || y[i] != 0) {

            if (x[i] != 0 && y[i] != 0)

                printf("( %d %d )" , x[i]+y[i], i);

            else if (x[i] !=0)

                printf("( %d %d )" , x[i], i);

            else if (y[i] !=0)

                printf("( %d %d )" , y[i], i);

        }

    }

    

    return 0;

}


5-1번을 두번 입력받는다. 그 후에 두개 중 하나가 0이 아니면 if문을 실행한다는 조건을 넣는다. 이는 계수가 0인 입력받지 않는 지수들을 제외하기 위함이고,


그 후 두개 모두 0이 아닐 경우 두개의 합을 출력하고 , 아닐 경우 각각을 출력하는 if elseif 문이다.


'프로그래밍 > C언어' 카테고리의 다른 글

배열 문제 #6.  (0) 2018.05.20
배열 문제 #5.  (0) 2018.05.19
배열 문제 #4.  (0) 2018.05.18
배열 문제 #2.  (0) 2018.05.18
배열 문제 #1.  (0) 2018.05.18